sqlserver存储过程中动态添加链接服务器示例(存储过程操作其他数据库服务器)
ALTER PROCEDURE [dbo].[P_SYNC_test](
@IP VARCHAR(50), --链接数据库IP
@name VARCHAR(50),-- sa
@pwd VARCHAR(50) --密码
)
AS
BEGIN
--添加链接服务器 test为别名
EXEC sp_addlinkedserver 'test','','SQLOLEDB',@IP
--增加用户登录链接
EXEC sp_addlinkedsrvlogin 'test','false',null,@name,@pwd
--业务逻辑数据库操作
insert into test.xxxx.dbo.xxx (xx) values(1)
--删除连接服务器
EXEC sp_dropserver 'test','droplogins'
END
GO
ps:直接保存存储过程会报错(sysservers 中找不到服务器 ‘test’),
可以先单独执行添加连接服务器语句,创建完然后保存存储过程即可,然后在删除该连接服务器。