Freigeben über


Erstellen von Anweisungen zur Laufzeit

Aktualisiert: 05. Dezember 2005

Die meisten Microsoft SQL Server 2005-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.
    ms178115.security(de-de,SQL.90).gifSicherheitshinweis:
    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.

Siehe auch

Konzepte

Verwenden von sp_executesql

Andere Ressourcen

SQL Injection
sp_executesql (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

05. Dezember 2005

Geänderter Inhalt:
  • Sicherheitshinweis zu SQL Injection eingefügt.
  • Codebeispiel entfernt.