215 votos

Características ocultas de SQL Server

¿Cuáles son algunas de las características ocultas de SQL Server?

Por ejemplo, los procedimientos almacenados del sistema, trucos para hacer cosas que son muy útiles, pero no se documentado lo suficiente?


Respuestas

Gracias a todos por todas las grandes respuestas!

Procedimientos Almacenados

  • sp_msforeachtable: Ejecuta un comando con el"? " reemplaza con cada nombre de tabla (v6.5)
  • sp_msforeachdb: Ejecuta un comando con el"? " reemplaza con cada nombre de base de datos (v7)
  • sp_who2: como sp_who, pero con un montón más de información para la solución de problemas de bloques (v7)
  • sp_helptext: Si desea que el código de un procedimiento almacenado, vista y UDF
  • sp_tables: devolver una lista de todas las tablas y vistas de la base de datos en el ámbito.
  • sp_stored_procedures: devolver una lista de todos los procedimientos almacenados
  • xp_sscanf: Lee los datos de la cadena en el argumento de lugares especificados por cada argumento de formato.
  • xp_fixeddrives:: Buscar la unidad fija con mayor espacio libre
  • sp_help: Si quieres conocer la estructura de las tablas, índices y restricciones de una tabla. También las vistas y Udf. Atajo de teclado es Alt+F1

Fragmentos

  • Volver filas en orden aleatorio
  • Todo Usuario de base de datos de Objetos por la Última Fecha de Modificación
  • La Fecha De Regreso Sólo
  • Buscar registros que fecha cae en algún lugar dentro de la semana actual.
  • Buscar registros que la fecha en que se produjo la semana pasada.
  • Devuelve la fecha para el comienzo de la semana actual.
  • Devuelve la fecha para el comienzo de la semana pasada.
  • Ver el texto de un procedimiento que se ha implementado en un servidor
  • Colocar todas las conexiones a la base de datos
  • La Tabla De La Suma De Comprobación
  • Fila De La Suma De Comprobación
  • La caída de todos los procedimientos en una base de datos
  • Re-asignar los Identificadores de inicio de sesión correctamente después de la restauración
  • Llamar a Procedimientos Almacenados de una instrucción INSERT
  • Encontrar Los Procedimientos Por Palabra Clave
  • La caída de todos los procedimientos en una base de datos
  • Consulta del registro de transacciones de una base de datos mediante programación.

Funciones

  • HashBytes()
  • EncryptByKey
  • PIVOTE de comandos

Misc

  • Cadena de conexión extras
  • TableDiff.exe
  • Desencadenantes de Sucesos de Inicio de sesión (Nuevo en el Service Pack 2)
  • Aumentar el rendimiento con persistió-calcula-las columnas (pcc).
  • DEFAULT_SCHEMA configuración en sys.database_principles
  • La Parametrización Forzada
  • El Formato De Almacenamiento Vardecimal
  • Averiguar las consultas más populares en cuestión de segundos
  • Bases De Datos Compartidas Escalables
  • Tabla de Procedimiento Almacenado/característica de Filtro en SQL Management Studio
  • Indicadores de traza
  • Número después de una GO repite el lote
  • La seguridad del uso de esquemas
  • El cifrado con el construido en funciones de cifrado, vistas y tablas de base con los desencadenadores

91voto

GilM Puntos 2493

En Management Studio, usted puede poner un número después de IR de fin de lote marcador para hacer que el lote a ser repetido ese número de veces:

PRINT 'X'
GO 10

Se print 'X' de 10 veces. Esto puede ahorrarte el tedioso copiar/pegar cuando se hace repetitivo cosas.

70voto

marc_s Puntos 321990

Un montón de SQL Server a los desarrolladores todavía no parecen saber acerca de la SALIDA de la cláusula (SQL Server 2005 y posteriores) en la eliminación, INSERCIÓN y ACTUALIZACIÓN de la declaración.

Puede ser muy útil para saber qué filas se han de Insertar, actualizar o eliminar, y la cláusula OUTPUT permite hacerlo muy fácilmente - permite el acceso a la "virtual" tablas denominadas inserted y deleted (como en los desencadenadores):

DELETE FROM (table)
OUTPUT deleted.ID, deleted.Description
WHERE (condition)

Si desea insertar valores en una tabla que tiene un INT IDENTIDAD campo de clave principal, con la cláusula de SALIDA, usted puede conseguir la inserción de la nueva ID de inmediato:

INSERT INTO MyTable(Field1, Field2)
OUTPUT inserted.ID
VALUES (Value1, Value2)

Y si va a actualizar, puede ser extremadamente útil para saber qué ha cambiado, en este caso, inserted representa los nuevos valores (después de la ACTUALIZACIÓN), mientras deleted se refiere a los valores antiguos antes de la ACTUALIZACIÓN:

UPDATE (table)
SET field1 = value1, field2 = value2
OUTPUT inserted.ID, deleted.field1, inserted.field1
WHERE (condition)

Si una gran cantidad de información serán devueltos, a la salida de la SALIDA también puede ser redirigido a una tabla temporal o una variable de tabla (OUTPUT INTO @myInfoTable).

Muy útil y muy poco conocido!

Marc

52voto

Mitch Wheat Puntos 169614

sp_msforeachtable: Ejecuta un comando con el"? " reemplaza con cada nombre de tabla. por ejemplo.

exec sp_msforeachtable "dbcc dbreindex('?')"

Usted puede emitir hasta 3 comandos para cada tabla

exec sp_msforeachtable
    @Command1 = 'print ''reindexing table ?''',
    @Command2 = 'dbcc dbreindex(''?'')',
    @Command3 = 'select count (*) [?] from ?'

También, sp_MSforeachdb

51voto

C. Lawrence Wenham Puntos 11271

Cadena de conexión extras:

MultipleActiveResultSets=true;

Esto hace que ADO.Net 2.0 y por encima de lectura múltiple, sólo hacia adelante, de sólo-lectura de conjuntos de resultados en una sola conexión de base de datos, que puede mejorar el rendimiento si estás haciendo un montón de lectura. Usted puede encender incluso si usted está haciendo una mezcla de los tipos de consulta.

Nombre De La Aplicación=MyProgramName

Ahora si quieres ver una lista de conexiones activas consultando la tabla sysprocesses, el nombre de su programa aparecerá en la program_name columna en lugar de ".Net SqlClient Proveedor de Datos"

33voto

Sklivvz Puntos 16412

TableDiff.exe

  • Tabla Diferencia herramienta permite descubrir y conciliar las diferencias entre un origen y un destino tabla o una vista. Utilidad Tablediff puede informar de las diferencias en el esquema y los datos. La característica más popular de tablediff es el hecho de que se puede generar una secuencia de comandos que se pueden ejecutar en el destino que va a conciliar las diferencias entre las tablas.

Enlace

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X