sp_executesql 是 SQL Server 的一个存储过程,用于执行一个 SQL 语句。
语法:
sp_executesql [@stmt =] stmt
[
{, [@params =] N'@parameter_name data_type [,...n]' }
{, [@param1 =] 'value1' [,...n] }
]
示例一:
看语法可能有些茫然,下面给出一个示例便于更好地理解。
exec sp_executesql N'select * from authors where state=@state', N'@state char(2)', 'CA'
上述语句中:蓝色的是 SQL 形式的字符串,其中含有一个参数 @state;红色的为申明变量语句的字符串,绿色为参数 @state 的值。
蓝色字符串和红色字符串必须是可以隐式转换成 ntext 的 Unicode 常量或变量,所以这里字符串前面的 N 不能省略。
示例二:
exec sp_executesql N'select * from authors where state=@state and contract=@contract', N'@state char(2), @contract bit', 'CA', 1
SQL 字符串中有两个参数,两个参数存放在一个字符串中,而两个参数的值则分别跟随在后面。
以上示例均基于 SQL Server 自带数据库 pubs,可以直接用于测试。
更多应用与知识请参见: