我正在从触发器调用过程并将某些参数从触发器传递到过程。参数是:使用sp_executesql执行时,SQL Server语法异常不正确
@table_name varchar(128), @where_str varchar(200)
在过程中,我执行的命令为sp_executesql
。我想,我使用的语法不正确,但我找不到解决方案。
这是所执行的查询:
SET @SqlString = N'update @ptable_name set RepSt=2 @pwhere_str';
SET @ParmDefinition = N'@ptable_name varchar(128), @pwhere_str varchar(200)';
execute sp_executesql @SqlString, @ParmDefinition,
@ptable_name = @table_name, @pwhere_str = @where_str;
传递的参数是这样的:
@table_name
是[MyTable]
@where_str = N'where MyColumnA = '[email protected]+N' AND MyColumnB = '[email protected]+N' AND MyColumnC = '[email protected];
不知何故,神奇地,我们会知道什么值被发送到这些参数?没有参数值就无法检查语法。 –
@Used_By_Already我按照你的要求更新了问题。 – Tunahan