Dieser Beitrag zeigt Ihnen einige Skripttipps zu MS SQL Server.
1. Warten Sie
Die WAITFOR-Anweisung wird mit einer von zwei Klauseln angegeben:
(1) Das Schlüsselwort DELAY, gefolgt von einer Zeitspanne, die vergehen soll, bevor die WAITFOR-Anweisung abgeschlossen wird. Die Wartezeit bis zum Abschluss der WAITFOR-Anweisung kann bis zu 24 Stunden betragen. Zum Beispiel,
– Warten Sie zehn Sekunden, bevor Sie eine Select-Anweisung ausführen
WARTEN AUF VERZÖGERUNG „00:00:10“
Wählen Sie EmployeeID aus Northwind.dbo.Employees
(2). Das Schlüsselwort TIME, gefolgt von einer Ausführungszeit, die den Abschluss der WAITFOR-Anweisung angibt.
Zum Beispiel,
-- Warten Sie bis 22:00 Uhr, um eine Überprüfung der Pubs-Datenbank durchzuführen, um sicherzustellen, dass alle Seiten korrekt zugewiesen und verwendet werden.
Nutzen Sie Kneipen
BEGINNEN
WARTEZEIT '22:00'
DBCC CHECKALLOC
ENDE
2. Aktivieren Sie das SQL-Debugging
– Die gespeicherte Prozedur SP_SDIDEBUG wird von SQL Server zum Debuggen von Transact-SQL-Anweisungen verwendet
Verwenden Sie Master
Gewähren Sie Execute on SP_SDIDEBUG für Benutzernamen
3. Führen Sie eine dynamisch erstellte Zeichenfolge aus
(1) EXECUTE-Anweisung
Mit der EXECUTE-Anweisung müssen alle Parameterwerte in Zeichen oder Unicode konvertiert und zu einem Teil der Transact-SQL-Zeichenfolge gemacht werden. Zum Beispiel,
DECLARE @IntVariable INT
DECLARE @SQLString NVARCHAR(500)
/* Erstellen Sie einen String mit einem Parameterwert und führen Sie ihn aus. */
SET @IntVariable = 35
SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = ' +
CAST(@IntVariable AS NVARCHAR(10))
EXEC(@SQLString)
/* Einen String mit einem zweiten Parameterwert erstellen und ausführen. */
SET @IntVariable = 201
SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = ' +
CAST(@IntVariable AS NVARCHAR(10))
EXEC(@SQLString)
(2) SP_ExecuteSQL
Die Verwendung von sp_executesql wird gegenüber der Verwendung der EXECUTE-Anweisung zum Ausführen einer Zeichenfolge empfohlen. Die Unterstützung der Parameterersetzung macht sp_executesql nicht nur vielseitiger als EXECUTE, sondern macht sp_executesql auch effizienter, da es Ausführungspläne generiert, die mit größerer Wahrscheinlichkeit von SQL Server wiederverwendet werden.
sp_executesql unterstützt das Festlegen von Parameterwerten getrennt von der Transact-SQL-Zeichenfolge:
DECLARE @IntVariable INT
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
/* Erstellen Sie die SQL-Zeichenfolge einmal. */
SET @SQLString =
N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = @level'
/* Geben Sie das Parameterformat einmal an. */
SET @ParmDefinition = N'@level tinyint'
/* Führe die Zeichenfolge mit dem ersten Parameterwert aus. */
SET @IntVariable = 35
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@level = @IntVariable
/* Dieselbe Zeichenfolge mit dem zweiten Parameterwert ausführen. */
SET @IntVariable = 32
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@level = @IntVariable
4. SP_HelpText
Druckt den Text einer Regel, eines Standardwerts oder einer unverschlüsselten gespeicherten Prozedur, einer benutzerdefinierten Funktion, eines Triggers oder einer Ansicht.
– In diesem Beispiel wird der Text des Employee_insupd-Triggers angezeigt, der sich in der pubs-Datenbank befindet
Nutzen Sie Pubs
Exec sp_helptext 'employee_insupd'