执行动态sql生成的Alter Table语句到链接服务器

时间:2015-04-22 14:50:02

标签: sql dynamic dynamic-sql linked-server alter-table

我有一种情况需要通过链接服务器向表中添加字段。这个规范是动态的,它是在TQL /存储过程中完成的,但这不能改变。我的代码生成语句就好了,如果我将它复制粘贴到新的SSMS窗口并执行它WORKS ..问题是我需要动态生成语句(我这样做很好,我认为)。那么我需要在SPROC中执行声明,这部分不起作用。

以下是代码:

SET @AlterSQL = @DestinationServerName + '.[' + @DestinationDBName +'].' + @DestinationSchemaName + '.sp_executesql N'' ALTER TABLE ' 
+ @DestinationTableName + ' ADD ' + @TempColumn + ' int' + CHAR(39)

上面的内容当我通过PRINT语句公开它时创建它:

addb15.[FSParallel].dbo.sp_executesql N' ALTER TABLE Node ADD ImportIdentity int'

我创建语句后使用:

EXEC @AlterSQL

这会返回以下错误:

  

Msg 2812,Level 16,State 62,Procedure ETLDynamicImport,Line 244   找不到存储过程'FSParallel.dbo.sp_executesql N'ALTER   TABLE Node ADD ImportIdentity int''。

有人可以就此提出建议吗?我正处于一个项目截止日期,并且用谷歌搜索到了这个结果并且无法使其正常工作。

0 个答案:

没有答案