在存储过程中将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)