当前位置: 代码迷 >> Sql Server >> 在存储过程中将EXEC命令执行的结果赋给变量的有关问题?
  详细解决方案

在存储过程中将EXEC命令执行的结果赋给变量的有关问题?

热度:53   发布时间:2016-04-27 19:01:54.0
在存储过程中将EXEC命令执行的结果赋给变量的问题???
declare   @str   varchar(500)

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

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)
  相关解决方案