Erstellen von Anweisungen zur Laufzeit

Die meisten MicrosoftSQL Server-Anwendungen, die SQL-Anweisungen dynamisch zur Laufzeit erstellen müssen, führen diesen Vorgang aus, bevor sie eine Datenbank-API-Funktion oder -Methode zur Ausführung der Anweisung aufrufen. Eine auf der Sprache C basierende Anwendung, die ODBC verwendet, kann z. B. dynamisch eine oder mehrere SQL-Anweisungen in ein Zeichenarray integrieren und dann dieses Array an die ODBC-Funktion SQLPrepare oder SQLExecDirect übergeben.

Transact-SQL unterstützt die folgenden Methoden zum Erstellen von SQL-Anweisungen zur Laufzeit in Transact-SQL-Skripts, gespeicherten Prozeduren und Triggern:

  • Verwenden der gespeicherten Systemprozedur sp_executesql zur Ausführung einer Unicode-Zeichenfolge. sp_executesql unterstützt die Parameterersetzung wie bei einer RAISERROR-Anweisung.

  • Verwenden der EXECUTE-Anweisung zur Ausführung einer Zeichenfolge. Die EXECUTE-Anweisung unterstützt keine Parameterersetzung in der ausgeführten Zeichenfolge.

    SicherheitshinweisSicherheitshinweis

    Das Verwenden der EXECUTE-Anweisung zum Ausführen einer Zeichenfolge erhöht die Gefahr von SQL Injection-Angriffen. Stattdessen wird die Verwendung von sp_executesql mit Parametern empfohlen.