Verwenden von Variablen und Parametern (Datenbankmodul)

Transact-SQL verfügt über mehrere Möglichkeiten zum Übergeben von Daten zwischen Transact-SQL-Anweisungen. Dabei handelt es sich um Folgendes:

  • Lokale Transact-SQL-Variablen

    Eine Transact-SQL-Variable ist ein Objekt in Transact-SQL-Batches und -Skripts, das einen Datenwert enthalten kann. Nachdem die Variable deklariert oder definiert wurde, kann eine Anweisung in einem Batch die Variable auf einen Wert festlegen, und eine spätere Anweisung im Batch kann den Wert aus der Variablen abrufen. Beispiel:

    USE AdventureWorks2008R2;
    GO
    DECLARE @EmpIDVar int;
    SET @EmpIDVar = 1234;
    SELECT *
    FROM HumanRresources.Employee
    WHERE BusinessEntityID = @EmpIDVar;
    
    HinweisHinweis

    Es können maximal 10.000 lokale Variablen in einem Batch deklariert werden.

  • Transact-SQL-Parameter

    Ein Parameter ist ein Objekt, das zum Übergeben von Daten zwischen einer gespeicherten Prozedur und dem Batch oder Skript verwendet wird, der bzw. das die gespeicherte Prozedur ausführt. Bei Parametern kann es sich entweder um Eingabe- oder um Ausgabeparameter handeln. Beispiel:

    USE AdventureWorks2008R2;
    GO
    CREATE PROCEDURE ParmSample @EmpIDParm int AS
    SELECT BusinessEntityID, JobTitle
    FROM HumanResources.Employee
    WHERE BusinessEntityID = @EmpIDParm ;
    GO
    
    EXEC ParmSample @EmpIDParm = 109 ;
    GO
    

Anwendungen verwenden Anwendungsvariablen und Parametermarkierungen, um mit den Daten aus Transact-SQL-Anweisungen zu arbeiten.

  • Anwendungsvariablen

    Die Anwendungsprogrammiersprachen, wie z. B. C, C++, Basic und Java, besitzen ihre eigenen Variablen zur Aufnahme von Daten. Anwendungen, die Datenbank-APIs verwenden, müssen die von Transact-SQL-Anweisungen zurückgegebenen Daten in Anwendungsvariablen verschieben, bevor sie damit arbeiten können. Dies erfolgt in der Regel im Rahmen eines Vorgangs, der als Bindung bezeichnet wird. Die Anwendung verwendet eine API-Funktion, um die Resultsetspalte an eine Programmvariable zu binden. Wenn eine Zeile abgerufen wird, verschiebt der API-Anbieter oder -Treiber die Daten aus der Spalte in die gebundene Programmvariable.

  • Parametermarkierungen

    Parametermarkierungen werden von den ADO-, OLE DB- und ODBC-basierten Datenbank-APIs unterstützt. Eine Parametermarkierung besteht aus einem Fragezeichen (?), das anstelle eines Eingabeausdrucks in einer Transact-SQL-Anweisung platziert wird. Die Parametermarkierung wird dann an eine Anwendungsvariable gebunden. Dies ermöglicht das Verwenden von Daten aus Anwendungsvariablen als Eingabe in Transact-SQL-Anweisungen. Parametermarkierungen ermöglichen außerdem das Binden von Ausgabeparametern und Rückgabecodes gespeicherter Prozeduren an Anwendungsvariablen. Die Ausgabedaten werden an die gebundenen Variablen zurückgegeben, wenn die Prozedur ausgeführt wird. Die DB-Library-API unterstützt außerdem das Binden von Parametern und Rückgabecodes gespeicherter Prozeduren an Programmvariablen.