日期:2014-05-18  浏览次数:20701 次

===求教关于存储过程变量声明的问题===
我在存储过程中写了如下语句: 
as 
declare @i int  
declare @sql varchar(1000) 

set @sql = ' select @i= coumt(1) from ...' 
exec(@sql)

sql2000里存储过程本身的保存都通过了, 
可是在执行程序的过程中,WEB系统却提示说‘须声明变量 '@i', 
请问这是怎么回事?

------解决方案--------------------
你可能需要使用sp_executesql来运行带有参数的Sql语句,比如:

SQL code

/*只有传出的参数*/
declare @t int
set @t=0
execute sp_executesql 
          N'select @count=count(1) from pubs.dbo.employee',
          N'@count int output',
          @t output

------解决方案--------------------
看看这个
http://www.cnblogs.com/edobnet/archive/2005/04/24/144509.html