首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

存储过程动态SQL解决方法

2012-09-24 
存储过程动态SQL以前搞点存储过程的,热度过了以后都不知道当时为什么用exec sp_excutesql @sql,N@count i

存储过程动态SQL
以前搞点存储过程的,热度过了以后都不知道当时为什么用exec sp_excutesql @sql,N'@count int output',@count output
这样的语句了,只记得当时是用exec @sql 解决不了的时候才用到。
是不是有输出参数的就必须用第一种的?

[解决办法]
不一定。如果你过程就定义好了输出参数。就不需要。
[解决办法]
在存储过程中用 exec sp_excutesql 这样的语句,所执行的程序与存储过程不是同一批处理(甚至不是同一个连接),因此,如果在语句中用到了变量,则要以参数的形式传入传出,否则,在那个批中找不到变量,这儿的@count 就是一个传出参数,在@sql 后面,跟一个N'@count int output' 表示在 @sql 里使用到的变量 @count 要在批中先行定义一下,并且定义为传出参数.

热点排行