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

在存储过程中将EXEC命令执行的结果赋给变量的问题???
declare   @str   varchar(500)

set   @str   =   N 'select   @recordcount   =   count(ProjectID)   from   [ '+@ToDbName+ '].[dbo].[ContractReportData]   where   ProjectStartDate   =   ' ' '+convert(varchar,@PrevDateTime,120)+ ' ' '   and   ProjectEndDate   =   ' ' '+convert(varchar,@NextDateTime,120)+ ' ' '   and   Type= ' ' '+@Type+ ' ' ' '

exec   sp_executesql   @str,N '@recordcount   int   output ',   @recordcount   output
if(@recordcount   =0)
......

这个报错:服务器:   消息   214,级别   16,状态   2,过程   sp_executesql,行   14
过程需要参数   '@statement '   为   'ntext/nchar/nvarchar '   类型。

在另一个存储过程中,我用和这个相同的方法,只是表名不一样而已,就不报这个错误,请问:这是为什么?

------解决方案--------------------
declare @str nvarchar(500)