日期:2014-05-17  浏览次数:20398 次

请帮我详解一下这条语句,谢谢
exec sp_executesql @sql, N'@count int out,@id varchar(20)', @cou out ,@id 
@sql为拼成的动态sql 
N'@count int out,@id varchar(20)'为拼成的动态sql内的参数列表 
@cou out,@id为为动态sql内参数列表提供值的外部参数列表 



就这条语句,有些有带说明了,想知道,N'这个代表什么意思,@count int out这是不是表示整型输出参数@count。。@cou out 和@count int out的实质区别是什么
------最佳解决方案--------------------
纸上谈兵有何用,问出来的结果可不可靠,还要自己验证。

declare @id int, @cn int
select top 1 @id = id from syscolumns

exec sp_executesql
N'select @cn=count(1) from syscolumns where id=@id',
N'@cn int out,@id int', @cn out, @id

select @cn, count(1) from syscolumns where id=@id

------其他解决方案--------------------
N标示字符串为Unicode 类型

@cou out 和@count int out
@cou是接收的参数,接收动态SQL的输出参数@count的值
@count是定义一个变量,并标示这个变量时输出参数的
------其他解决方案--------------------
@id 是接收传来的值
------其他解决方案--------------------
N'..'指示后面的是nvarchar(unicode)字符串
@count int out (内部参数列表)整数输出
@cou out (外部参数列表)接收@count的输出
内外参数列表一一对应,out表示传出参数,无out表示传入参数
------其他解决方案--------------------
引用:
N'..'指示后面的是nvarchar(unicode)字符串
@count int out (内部参数列表)整数输出
@cou out (外部参数列表)接收@count的输出
内外参数列表一一对应,out表示传出参数,无out表示传入参数


这么说,id表示传入的参数,对吗
------其他解决方案--------------------
引用:
N标示字符串为Unicode 类型

@cou out 和@count int out
@cou是接收的参数,接收动态SQL的输出参数@count的值
@count是定义一个变量,并标示这个变量时输出参数的


那这个 @cou out 和@id 又有什么不同,id是否也是接收@id传来的值,他是否也可以输出