我有以下存储过程:
CREATE Procedure [dbo].[sc_Server_Link]
@ServerName varchar(255),
@ServerSource varchar(255),
@DatabaseName varchar(255),
@UserName varchar(255),
@UserPass varchar(255)
AS
BEGIN
IF NOT EXISTS ( SELECT 1 FROM sys.sysservers WHERE srvname = @ServerName )
BEGIN
EXEC sp_addlinkedserver
@server = @ServerName,
@srvproduct = '',
@provider = 'sqlncli',
@datasrc = @ServerSource,
@location = '',
@provstr = '',
@catalog = @DatabaseName
--Add credentials and options to this linked server
IF NOT EXISTS ( SELECT 1 FROM sys.linked_logins WHERE remote_name = @UserName)
EXEC sp_addlinkedsrvlogin
@rmtsrvname = @ServerName,
@useself = 'false',
@rmtuser = @UserName,
@rmtpassword = @UserPass
--Set Options
EXEC sp_serveroption @ServerName, 'rpc out', true;
END
END
执行程序工作正常但之后,每次我尝试进行交易时...交易有效,但我收到以下错误:
消息15002,级别16,状态1,过程sp_addlinkedserver,第71行
程序' sys.sp_addlinkedserver'无法在交易中执行。消息15002,级别16,状态1,过程sp_addlinkedsrvlogin,第35行 程序' sys.sp_addlinkedserver'无法在交易中执行。
Msg 15002,Level 16,State 1,Procedure sp_serveroption,Line 37
程序' sys.sp_addlinkedserver'无法在交易中执行。
感谢您的帮助!