Esta publicación le mostrará algunos consejos sobre scripts sobre MS SQL Server.
1. Espera
La declaración WAITFOR se especifica con una de dos cláusulas:
(1) La palabra clave DELAY seguida de una cantidad de tiempo que transcurrirá antes de completar la declaración WAITFOR. El tiempo de espera antes de completar la declaración WAITFOR puede ser de hasta 24 horas. Por ejemplo,
-- Espere diez segundos antes de realizar una declaración de selección
ESPERA DE RETRASO '00:00:10'
Seleccione EmployeeID de Northwind.dbo.Employees
(2) La palabra clave TIME seguida de una hora de ejecución, que especifica la finalización de la instrucción WAITFOR.
Por ejemplo,
-- Espere hasta las 10:00 p.m. para realizar una verificación de la base de datos de publicaciones y asegurarse de que todas las páginas estén asignadas y utilizadas correctamente.
Usar pubs
COMENZAR
HORA DE ESPERA '22:00'
DBCC CHECKALLOC
FINAL
2. Habilite la depuración de SQL
-- SQL Server utiliza el procedimiento almacenado SP_SDIDEBUG para depurar declaraciones Transact-SQL.
usar maestro
Conceder Ejecutar en SP_SDIDEBUG al nombre de usuario
3. Ejecutar una cadena construida dinámicamente
(1) Declaración EJECUTAR
Con la instrucción EXECUTE, todos los valores de los parámetros deben convertirse a caracteres o Unicode y formar parte de la cadena Transact-SQL. Por ejemplo,
DECLARAR @IntVariable INT
DECLARAR @SQLString NVARCHAR(500)
/* Construye y ejecuta una cadena con un valor de parámetro. */
ESTABLECER @IntVariable = 35
SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = ' +
CAST(@IntVariable AS NVARCHAR(10))
EJECUTIVO(@SQLString)
/* Construye y ejecuta una cadena con un segundo valor de parámetro. */
ESTABLECER @IntVariable = 201
SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = ' +
CAST(@IntVariable AS NVARCHAR(10))
EXEC(@SQLString)
(2) SP_ExecuteSQL
Se recomienda usar sp_executesql en lugar de usar la instrucción EXECUTE para ejecutar una cadena. La compatibilidad con la sustitución de parámetros no solo hace que sp_executesql sea más versátil que EXECUTE, sino que también hace que sp_executesql sea más eficiente porque genera planes de ejecución que tienen más probabilidades de ser reutilizados por SQL Server.
sp_executesql admite la configuración de valores de parámetros por separado de la cadena Transact-SQL:
DECLARE @IntVariable INT
DECLARAR @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
/* Genera la cadena SQL una vez. */
ESTABLECER @SQLString =
N'SELECT * FROM pubs.dbo.employee DONDE job_lvl = @level'
/* Especifique el formato del parámetro una vez. */
SET @ParmDefinition = N'@level tinyint'
/* Ejecuta la cadena con el primer valor del parámetro. */
ESTABLECER @IntVariable = 35
EJECUTAR sp_executesql @SQLString, @ParmDefinition,
@nivel = @IntVariable
/* Ejecuta la misma cadena con el segundo valor del parámetro. */
ESTABLECER @IntVariable = 32
EJECUTAR sp_executesql @SQLString, @ParmDefinition,
@nivel = @IntVariable
4. SP_HelpText
Imprime el texto de una regla, un procedimiento almacenado predeterminado o no cifrado, una función definida por el usuario, un activador o una vista.
-- Este ejemplo muestra el texto del activador Employee_insupd, que se encuentra en la base de datos de pubs.
Usar pubs
Ejecutivo sp_helptext 'empleado_insupd'