Sql 在存储过程中执行sp_addlinkedserver
我有以下存储过程:Sql 在存储过程中执行sp_addlinkedserver,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我有以下存储过程: 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.syss
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
执行该过程可以很好地工作,但之后,每次我尝试执行事务时。。。事务正常,但我收到以下错误:
Msg 15002,16级,状态1,程序sp_addlinkedserver,第71行无法在事务中执行过程“sys.sp_addlinkedserver” Msg 15002,第16级,状态1,程序sp_addlinkedsrvlogin,第35行
无法在事务中执行过程“sys.sp_addlinkedserver” Msg 15002,16级,状态1,程序sp_服务器选项,第37行
无法在事务中执行过程“sys.sp_addlinkedserver”
- 我怎样才能阻止这些错误
- 如何更正存储过程以避免再次发生这种情况
谢谢你的帮助 这个答案可能会有帮助:错误消息是否已经告诉您所有您需要知道的信息???即使我停止使用此sp。。。每次插入/更新/删除本地数据库时,我都会遇到这3个错误。如果会话仍处于打开状态,请关闭事务。否则,请关闭会话。只是一个猜测。如果这没有帮助(或者您不知道如何),请重新启动SQL Server数据库引擎(如何)