簡體   English   中英

在鏈接服務器上運行存儲過程(鏈接服務器名稱作為參數)

[英]Run stored procedure on linked server (linked server name as Parameter)

我正在嘗試針對來自參數的鏈接服務器執行代碼。 下面是我的代碼。 但是我收到一個錯誤:

'找不到服務器 'P_LINKED_SERVER'。

如何針對來自參數的服務器執行?

DECLARE @P_LINKED_SERVER AS VARCHAR(30)

SET @LINKED_SERVER = (SELECT DSS_PARAMETER_VALUE FROM [DBO].DSS_PARAMETER WHERE DSS_PARAMETER_NAME = 'Server Name')
DECLARE @sql AS VARCHAR(max)

SET @sql = 'SQL CODE'

EXEC (@sql) AT [@P_LINKED_SERVER];

非常感謝

鏈接服務器名稱必須是完整語句的一部分,不能是參數。 所以:

DECLARE @P_LINKED_SERVER AS VARCHAR(30);

SELECT @LINKED_SERVER = DSS_PARAMETER_VALUE
FROM [DBO].DSS_PARAMETER
WHERE DSS_PARAMETER_NAME = 'Server Name';

DECLARE @sql AS NVARCHAR(max);

SET @sql = CONCAT('EXEC SQL CODE AT ', @LINKED_SERVER);

EXEC(@sql);

就您而言,您似乎想要:

SET @sql = CONCAT('EXEC ''DELETE FROM tablename'' AT ', @LINKED_SERVER);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM