Использование переменных и параметров (компонент Database Engine)

Язык Transact-SQL имеет несколько способов для передачи данных между инструкциями Transact-SQL. Эти способы включают:

  • Локальные переменные Transact-SQL.

    Переменная Transact-SQL является объектом в пакетах и скриптах Transact-SQL, которая может содержать значение данных. После объявления переменной или определения одна инструкция пакета может присвоить переменной значение, и более поздняя инструкция пакета может получить значение из переменной. Например:

    USE AdventureWorks2008R2;
    GO
    DECLARE @EmpIDVar int;
    SET @EmpIDVar = 1234;
    SELECT *
    FROM HumanRresources.Employee
    WHERE BusinessEntityID = @EmpIDVar;
    
    ПримечаниеПримечание

    Максимальное количество локальных переменных, которые могут быть объявлены в пакете, равно 10 000.

  • Параметры Transact-SQL.

    Параметр — объект, используемый для передачи данных между хранимой процедурой и пакетом или скриптом, который выполняет хранимую процедуру. Параметры могут быть либо входными, либо выходными. Например:

    USE AdventureWorks2008R2;
    GO
    CREATE PROCEDURE ParmSample @EmpIDParm int AS
    SELECT BusinessEntityID, JobTitle
    FROM HumanResources.Employee
    WHERE BusinessEntityID = @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 также поддерживает привязывание параметра хранимой процедуры и кодов возврата к переменным программы.