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)