declare @str nvarchar(4000) declare @i int set @str = 'select @i = count(*) from jizhan' exec sp_executesql @str,N'@i int out',@i out select @i ---------------------------- 就是刚才呀! 以上是您给我的答案,我那个贴子没有分.一定要补上呀,呵呵. 还有:顺便再请教一下, N'@i int out' 为什么前面必须加上N呢?而且要用单引号引起来.?? 可是 @i out 就不能用单引号括起来,前面也不能加N,这两个不都是参数吗? 为何不一致呀? 谢谢指教.
sp_executesql的参数一定要Unicode,所以前面要加个N,至于后面的问题写成下面这样更容易理解declare @str nvarchar(4000) declare @a int set @str = 'select @i = count(*) from jizhan' exec sp_executesql @str,N'@i int out',@a out select @a事实上,@i是用于宣言@str里那个变量,而@a才是最后输出的目标
sp_executesql的参数一定要Unicode,所以前面要加个N, ------------------------- 我就是为这一句不解,因为@a out 也是参数呀,是不是这个不是您说的参数呀? 您指的是出现在sql语句中的变量,是这样吗?
declare @i int
set @str = 'select @i = count(*) from jizhan'
exec sp_executesql @str,N'@i int out',@i out
select @i
----------------------------
就是刚才呀!
以上是您给我的答案,我那个贴子没有分.一定要补上呀,呵呵.
还有:顺便再请教一下,
N'@i int out' 为什么前面必须加上N呢?而且要用单引号引起来.??
可是 @i out 就不能用单引号括起来,前面也不能加N,这两个不都是参数吗?
为何不一致呀?
谢谢指教.
declare @a int
set @str = 'select @i = count(*) from jizhan'
exec sp_executesql @str,N'@i int out',@a out
select @a事实上,@i是用于宣言@str里那个变量,而@a才是最后输出的目标
-------------------------
我就是为这一句不解,因为@a out 也是参数呀,是不是这个不是您说的参数呀?
您指的是出现在sql语句中的变量,是这样吗?