简体   繁体   English

在链接服务器上运行存储过程(链接服务器名称作为参数)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM