运行时生成语句
大多数 Microsoft SQL Server 应用程序在调用数据库 API 函数或方法执行 SQL 语句之前,都必须在运行时动态生成这些语句。例如,使用 ODBC 的 C 语言应用程序动态将一个或多个 SQL 语句生成到字符数组中,然后将该数组传递到 ODBC SQLPrepare 或 SQLExecDirect 函数。
Transact-SQL 支持下列在运行时使用 Transact-SQL 脚本、存储过程以及触发器生成 SQL 语句的方法:
使用 sp_executesql 系统存储过程执行 Unicode 字符串。sp_executesql 支持与 RAISERROR 语句类似的参数替换。
使用 EXECUTE 语句执行字符串。EXECUTE 语句不支持已执行字符串中的参数替换。
安全说明 使用 EXECUTE 语句执行字符串容易受到 SQL 注入攻击。建议您改用带有参数的 sp_executesql。