[英]Run stored procedure on linked server (linked server name as Parameter)
I'm trying to execute code against linked server which is coming from a parameter.我正在尝试针对来自参数的链接服务器执行代码。 Below is my code.
下面是我的代码。 However I get an error:
但是我收到一个错误:
'Could not find server 'P_LINKED_SERVER'.
'找不到服务器 'P_LINKED_SERVER'。
How does one execute against server which is coming from a parameter?如何针对来自参数的服务器执行?
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];
Many Thanks非常感谢
The linked server name has to be part of the complete statement and cannot be a parameter.链接服务器名称必须是完整语句的一部分,不能是参数。 So:
所以:
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);
In your case, you seem to want:就您而言,您似乎想要:
SET @sql = CONCAT('EXEC ''DELETE FROM tablename'' AT ', @LINKED_SERVER);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.