我正在尝试使用 FORMATMESSAGE SQL 函数执行动态创建的查询,当我这样做时出现错误
"." 附近的语法不正确。
我假设这是因为创建的修剪后的SQL查询。
set @sql = FORMATMESSAGE('insert into %s (imported_on, source_filename, md5_hash %s) select GETDATE(), ''%s'', ''%s'' %s from %s',
@target_tablename, @columns, @source_filename, 'TODO', @columns, @source_table);
exec (@sql);
有一长串列@columns变量包含 ~ 300(列),长度超过 4000。变量@columns
和@sql
都是nvarchar(max)
类型。
我看到过其他建议拆分为多个变量的帖子,但也提到了nvarchar(max)
应该起作用。如果我不拆分字符串,我对如何进行一无所知。
谢谢
自己执行字符串连接。
declare @sql nvarchar(max);
set @sql = convert(nvarchar(max), '')
+ 'insert into ' + @target_tablename + '(imported_on, ....
exec (@sql);