2012-12-04 19 views
0

遠程服務器我有一個光標,其取數據庫名稱和鏈接服務器名稱在他們每個人執行存儲過程中的變量名

Declare getDBLinkServer cursor for 
select DatabaseName, LinkServerName from DBnLinkServer 
Open getDBLinkServer 
fetch next from getDBLinkServer into @DatabaseName, @LinkServerName 
While @@FETCH_STATUS = 0 
Begin 
    exec @[email protected] 'some' 
    fetch next from getDBLinkServer into @DatabaseName, @LinkServerName 
End 
Close getDBLinkServer 
Deallocate getDBLinkServer 

的這顯示Incorrect syntax near '.'我怎樣才能避免執行過程?

回答

1

使用動態sql。像這樣:

declare @sql nvarchar(max) 
set @sql = 'exec ' + @LinkServerName + '.' + @DatabaseName + '.dbo.'[email protected]+' ''some''' 

exec sp_executeSQL @sql 
+0

非常感謝。它完成了這項工作。 – Kamal