【问题标题】:execute stored procedure in remote server with variable names使用变量名在远程服务器中执行存储过程
【发布时间】:2012-12-04 10:23:44
【问题描述】:

我有一个游标及其获取数据库名称和链接服务器名称,以便在其中执行一个过程

Declare getDBLinkServer cursor for  
select DatabaseName, LinkServerName from DBnLinkServer  
Open getDBLinkServer  
fetch next from getDBLinkServer into @DatabaseName, @LinkServerName  
While @@FETCH_STATUS = 0  
Begin  
    exec @LinkServerName.@DatabaseName.dbo.someProcedure 'some' 
    fetch next from getDBLinkServer into @DatabaseName, @LinkServerName  
End  
Close getDBLinkServer  
Deallocate getDBLinkServer

这是显示Incorrect syntax near '.' 我怎样才能避免它?

【问题讨论】:

    标签: sql sql-server sql-server-2012


    【解决方案1】:

    使用动态 sql。像这样:

    declare @sql nvarchar(max)
    set @sql = 'exec ' + @LinkServerName + '.' + @DatabaseName + '.dbo.'+@someProcedure+' ''some''' 
    
    exec sp_executeSQL @sql
    

    【讨论】:

    • 非常感谢。它完成了这项工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多