Построение инструкций в среде выполнения

Большинство приложений Microsoft SQL Server, в которых необходимо динамически построить инструкции SQL в среде выполнения, производят это построение перед тем, как вызвать функцию или метод API базы данных для выполнения инструкции. Например, приложение на языке C, использующее ODBC, может динамически построить и записать одну или несколько инструкций SQL в символьный массив и после этого передать этот массив функциям ODBC SQLPrepare или SQLExecDirect.

Язык Transact-SQL поддерживает два метода построения инструкций SQL во время выполнения в сценариях, хранимых процедурах и триггерах Transact-SQL:

  • Использование системной хранимой процедуры sp_executesql для выполнения строки в Юникоде. Процедура sp_executesql поддерживает подстановку параметров по аналогии с инструкцией RAISERROR.

  • Использование инструкции EXECUTE для выполнения символьной строки. Инструкция EXECUTE не поддерживает подстановку параметров в выполняемой строке.

    Примечание по безопасностиПримечание по безопасности

    Использование инструкции EXECUTE для выполнения строки облегчает атаки типа SQL Injection. Вместо этого рекомендуется использовать инструкцию sp_executesql с параметрами.