Sql server 执行大型SQL查询
我试图使用FormatMessageSQL函数执行一个动态创建的查询,当我这样做时,我得到一个错误 “.”附近的语法不正确 我假设这是因为创建了修剪过的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,
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);