不同伺服器資料庫之間的資料操作

2021-06-08 09:00:52 字數 2532 閱讀 5114

不同伺服器資料庫之間的資料操作

--建立鏈結伺服器

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.表名)

備註,出現錯誤執行它 就對了

exec sp_configure 'show advanced options',1

reconfigure

exec sp_configure 'ad hoc distributed queries',1

reconfigure

--生成本地表

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 本地表

--插入本地表

insert into 本地表 select * from openquery(itsv,  'select *  from 資料庫.dbo.表名')

--更新本地表

update b

set b.列b=a.列b

from openquery(itsv,  'select * from 資料庫.dbo.表名 ') as a 

inner join 本地表 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

安裝mysql的odbc驅動myodbc 

1、為mysql建立乙個odbc系統資料來源,例如:選擇資料庫為test  ,資料來源名稱為  mydsn 

2、建立鏈結資料庫 

exec  sp_addlinkedserver    @server  =  'mysqltest',  @srvproduct='mysql',  @provider  =  'msdasql',  @datasrc  =  'mydsn' 

go 

exec  sp_addlinkedsrvlogin    @rmtsrvname='mysqltest',@useself='false',@locallogin='sa',@rmtuser='mysql 的使用者名稱',@rmtpassword='mysql的密碼' 

3、查詢資料 

select  *  from  openquery  (mysqltest  ,'select  *  from  表'  )

不同伺服器資料庫之間的資料操作

首先執行 exec sp addlinkedserver itsv sqloledb 10.0.0.21 exec sp addlinkedsrvlogin itsv false null,sa 然後實現sql語句 delete from lr insert lr select from itsv....

不同伺服器資料庫之間的資料操作

首先執行 exec sp addlinkedserver itsv sqloledb 10.0.0.21 exec sp addlinkedsrvlogin itsv false null,sa 然後實現sql語句 delete from lr insert lr select from itsv....

不同伺服器資料庫之間的資料操作

不同伺服器資料庫之間的資料操作 建立鏈結伺服器 exec sp addlinkedserver itsv sqloledb 遠端伺服器名或ip位址 exec sp addlinkedsrvlogin itsv false null,使用者名稱 密碼 查詢示例 select from itsv.資料庫...