运行时生成语句

更新日期: 2005 年 12 月 5 日

大多数 Microsoft SQL Server 2005 应用程序在调用数据库 API 函数或方法执行 SQL 语句之前,都必须在运行时动态生成这些语句。例如,使用 ODBC 的 C 语言应用程序动态将一个或多个 SQL 语句生成到字符数组中,然后将该数组传递到 ODBC SQLPrepareSQLExecDirect 函数。

Transact-SQL 支持下列在运行时使用 Transact-SQL 脚本、存储过程以及触发器生成 SQL 语句的方法:

  • 使用 sp_executesql 系统存储过程执行 Unicode 字符串。sp_executesql 支持与 RAISERROR 语句类似的参数替换。
  • 使用 EXECUTE 语句执行字符串。EXECUTE 语句不支持已执行字符串中的参数替换。
    ms178115.security(zh-cn,SQL.90).gif安全说明:
    使用 EXECUTE 语句执行字符串容易受到 SQL 注入攻击。建议您改用带有参数的 sp_executesql

请参阅

概念

使用 sp_executesql

其他资源

SQL 注入
sp_executesql (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2005 年 12 月 5 日

已更改的内容:
  • 插入了有关 SQL 注入的安全说明。
  • 删除了代码示例。