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--删除链接服务器