CSDN广告是越来越多了,所有博客笔记不再更新,新网址 DotNet笔记
1)
最简单的应用
exec sp_executesql N‘select * from drp..tbl_part’
2)
带参数的(当前例子和参数无关,其实就是字符串拼接)
declare @i int
declare @sqlStr nvarchar(200)
set @i=2000
set @sqlStr='select * from drp..tbl_part tp where tp.pin_price > '+CONVERT(nvarchar,@i)
exec sp_executesql @sqlStr
3)
带输入参数
exec sp_executesql N'select * from drp..tbl_part tp where tp.pin_price > @pin_price'
,N'@pin_price int'
,@pin_price=2000
仔细观察:
1:sql语句里面的变量是在第二个参数中声明的,不管sql语句有多少个参数变量,都要在这里声明!
2:第三个及其以后的参数是用作为第二个参数赋值的。
4)带输出参数
declare @total_var int
exec sp_executesql N'select @total=count(*) from drp..tbl_part tp where tp.pin_price > @pin_price'
,N'@pin_price int,@total int output'
,@pin_price=2000
,@total=@total_var output ---把输出参数的值放在一个变量@total_var中
select @total_var ---查看输出的参数