Sql server 执行大型SQL查询

Sql server 执行大型SQL查询,sql-server,Sql Server,我试图使用FormatMessageSQL函数执行一个动态创建的查询,当我这样做时,我得到一个错误 “.”附近的语法不正确 我假设这是因为创建了修剪过的SQL查询 set @sql = FORMATMESSAGE('insert into %s (imported_on, source_filename, md5_hash %s) select GETDATE(), ''%s'', ''%s'' %s from %s', @target_tablename,

我试图使用FormatMessageSQL函数执行一个动态创建的查询,当我这样做时,我得到一个错误

“.”附近的语法不正确

我假设这是因为创建了修剪过的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);