Использование переменных и параметров (компонент Database Engine)
Язык Transact-SQL имеет несколько способов для передачи данных между инструкциями Transact-SQL. Эти способы включают:
Локальные переменные Transact-SQL.
Переменная Transact-SQL является объектом в пакетах и сценариях Transact-SQL, которая может содержать значение данных. После объявления переменной или определения одна инструкция пакета может присвоить переменной значение, и более поздняя инструкция пакета может получить значение из переменной. Например:
USE AdventureWorks; GO DECLARE @EmpIDVar int; SET @EmpIDVar = 1234; SELECT * FROM HumanRresources.Employee WHERE EmployeeID = @EmpIDVar;
Примечание Максимальное количество локальных переменных, которые могут быть объявлены в пакете, равно 10 000.
Параметры Transact-SQL.
Параметр — объект, используемый для передачи данных между хранимой процедурой и пакетом или сценарием, который выполняет хранимую процедуру. Параметры могут быть либо входными, либо выходными. Например:
USE AdventureWorks; GO CREATE PROCEDURE ParmSample @EmpIDParm int AS SELECT EmployeeID, Title FROM HumanResources.Employee WHERE EmployeeID = @EmpIDParm GO EXEC ParmSample @EmpIDParm = 109 GO
Приложения используют переменные приложения и маркеры параметра для работы с данными из инструкций Transact-SQL.
Переменные приложения.
Прикладные языки программирования типа C, C++, Basic и Java имеют собственные переменные для хранения данных. Приложения, использующие функции API базы данных, должны переместить данные, возвращенные инструкциями Transact-SQL в переменные приложения прежде, чем они смогут работать с данными. Обычно это делается с помощью процесса, называемого привязкой. Приложение использует функцию API, чтобы привязать столбец результирующего набора к переменной программы. Когда строка выбрана, поставщик API или драйвер перемещают данные из столбца в привязанную переменную программы.
Маркеры параметров.
Маркеры параметров поддерживаются интерфейсами прикладного программирования ADO, OLE DB и баз данных на основе ODBC. Маркер параметра — вопросительный знак (?), помещенный в месте входного выражения в инструкции Transact-SQL. Маркер параметра затем привязывается к переменной приложения. Это позволяет использовать данные из переменных приложения в качестве входных аргументов в инструкциях Transact-SQL. Маркеры параметра также позволяют выполнить привязку к переменным приложения выходных параметров хранимых процедур и кодов возврата. После выполнения процедуры выходные данные возвращаются привязанным переменным. API DB-Library также поддерживает привязывание параметра хранимой процедуры и кодов возврата к переменным программы.