Построение инструкций в среде выполнения
Большинство приложений MicrosoftSQL 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 с параметрами.
См. также