两台服务器之间建立DBLINK的SQL写法

两台服务器之间建立dblink的SQL写法
 
EXEC sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或IP地址'
 
EXEC sp_addlinkedsrvlogin 'ITSV' , 'false' , null , 'sa或其他用户名' , '数据库密码'
 
所建立的ITSV可在服务器对象---链接服务器中找到
 
查询所连接的服务器的表--查询示例
select * from ITSV.数据库名.dbo.表名
 
因为sp_addlinkedserver 和sp_addlinkedsrvlogin 为两个存储过程是系统自动记录,故无法修改,若要修改,则只能删除,再重新做。
 
删除:exec sp_dropserver 'ITSV','droplogins'

 

------------------------------------------------------------------------------------------------

附件二、来自网络摘用。未进行实操验证

 

不同服务器数据库之间的数据操作

 

--创建链接服务器

exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址'

exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码'

--查询示例

select * from ITSV.数据库名.dbo.表名

--导入示例

select * into 表 from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器

exec sp_dropserver 'ITSV' , 'droplogins'

--连接远程/局域网数据(openrowset/openquery/opendatasource) --

1、openrowset --查询示例 select * from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名)

--生成本地表

select * into 表 from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名)

--把本地表导入远程表

insert openrowset( 'SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) select *from 本地表

--更新本地表 update b set b.列A=a.列A from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) as a inner join 本地表 b on a.column1 = b.column1

--openquery用法需要创建一个连接

--首先创建一个连接创建链接服务器

exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址'

--查询

select * FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名')

--把本地表导入远程表

 insert openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') select * from 本地表

--更新本地表 update b set b.列B=a.列B FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') as a innerjoin 本地表 b on a.列A=b.列A

--3、opendatasource/openrowset

SELECT * FROM opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').test.dbo.roy_ta

--把本地表导入远程表

 insert opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').数据库.dbo.表名 select * from 本地表 

 

 

 

 

--创建链接服务器

exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址'

exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码'

--查询示例

select * from ITSV.数据库名.dbo.表名

--导入示例

select * into 表 from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器

exec sp_dropserver 'ITSV' , 'droplogins'

--连接远程/局域网数据(openrowset/openquery/opendatasource) --

1、openrowset --查询示例 select * from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名)

--生成本地表

select * into 表 from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名)

--把本地表导入远程表

insert openrowset( 'SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) select *from 本地表

--更新本地表 update b set b.列A=a.列A from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名) as a inner join 本地表 b on a.column1 = b.column1

--openquery用法需要创建一个连接

--首先创建一个连接创建链接服务器

exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址'

--查询

select * FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名')

--把本地表导入远程表

 insert openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') select * from 本地表

--更新本地表 update b set b.列B=a.列B FROM openquery(ITSV , 'SELECT * FROM 数据库.dbo.表名') as a innerjoin 本地表 b on a.列A=b.列A

--3、opendatasource/openrowset

SELECT * FROM opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').test.dbo.roy_ta

--把本地表导入远程表

 insert opendatasource('SQLOLEDB' , 'Data Source=ip/ServerName ; User ID=登陆名 ; Password=密码').数据库.dbo.表名 select * from 本地表 

posted @ 2022-10-28 16:57  Rukh  阅读(205)  评论(0编辑  收藏  举报