Использование переменных и параметров (ядро СУБД)

Язык 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;
    
    ms175852.note(ru-ru,SQL.90).gifПримечание.
    Максимальное количество локальных переменных, которые могут быть объявлены в пакете, равно 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 также поддерживает привязывание параметра хранимой процедуры и кодов возврата к переменным программы.

См. также

Другие ресурсы

DECLARE @local\_variable (Transact-SQL)
SELECT (Transact-SQL)
Функции (Transact-SQL)
SET @local\_variable (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005