存儲過程我想創建一個新的存儲過程sp_sync_table
(在SQL Server 2012),它接受一個參數(鏈接服務器名稱)。然而,突出聲明@linkedServerName
變量是不夠的。 CREATE PROCEDURE
指令失敗,因爲它無法解析@linkedServerName
,除非@linkedServerName
爲SET爲特定名稱。與@variable服務器名稱
它失敗,錯誤:
Msg 102, Level 15, State 1, Procedure sp_sync_table, Line 31
Incorrect syntax near '.'.)
很明顯,我不能提供一個特定的名稱,必須要通過
exec sp_sync_table server_name
這是失敗的部分中傳遞:
CREATE PROCEDURE sp_sync_table
@linkedServerName AS VARCHAR(50)
AS BEGIN
.
.
.
DECLARE cursorX CURSOR FOR
SELECT col1, col2, col3, col4 FROM @linkedServerName.[db-name].[dbo].[table]
OPEN cursorX
.
.
.
該方案的解決方法是什麼?
我認爲動態SQL將是你唯一的選擇 – jazza1000
好了,不知道你是遊標裏面做什麼,但有可能在連接服務器創建此過程,只是遠程調用的程序,而不是試圖在調用方的動態SQL中將所有這一切混爲一談? –
..這太容易了(鏈接的服務器不是我的),所以很不幸:) – Milan