执行大型 SQL 查询



我正在尝试使用 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);

最新更新