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;
Hinweis 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.