SQL Server跨服务器操作数据库

时间:2022-09-12 15:38:28

SQL Server跨服务器操作数据库,首先需要在本地数据库创建链接服务器,

用 (srv_lnk.database_name.dbo.table_name 远程服务器完整表名(必须用4部分表示))  

    [链接服务器].[远程数据库名].[dbo].[表名称]    的形式操作远程数据库


语法:

--创建链接服务器

EXEC sp_addlinkedserver

      @server='srv_lnk',--被访问的服务器别名(任意的名称)

      @srvproduct='',

      @provider='SQLOLEDB',

      @datasrc='MYSQLServer'   --要访问的服务器或IP(SQL SERVER实例名)

--登录远程服务器

EXEC sp_addlinkedsrvlogin

     'srv_lnk', --被访问的服务器别名

     'false',

     NULL,

     'sa', --登陆链接服务器的帐号

     '123456' --登陆链接服务器的密码


--查看已注册的链接服务器

--exec sp_linkedservers

--存储链接服务器表名

master..sysservers


sp_addlinkedserver   和  sp_addlinkedsrvlogin 返回值:  0(成功)和1(失败)


--增

INSERT INTO srv_lnk.database_name.dbo.tablename (id,name,age)  values (1,'name',10)


INSERT INTO srv_lnk.database_name.dbo.tablename (id,name,age) 

SELECT 1,'name',10


SELECT * INTO srv_lnk.database_name.dbo.table_name FROM local_table_name

--删

DELETE FROM srv_lnk.database_name.dbo.table_name where id = 1

--改

UPDATE srv_lnk.database_name.dbo.table_name set name = 'name1' where id = 1

--查

SELECT * FROM  srv_lnk.database_name.dbo.table_name

--存储过程

 EXEC sp_serveroption 'srv_lnk','rpc out','true'   -- 执行存储过程前需执行此语句

 EXEC srv_lnk.database_name.dbo.Production


--用完后可删除

--EXEC sp_droplinkedsrvlogin srv_lnk,NULL --删除链接服务器的登陆帐户

--EXEC sp_dropserver srv_lnk--删除链接服务器