不同服務器數據庫之間的數據操作

--
創建鏈接服務器 


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  

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 

--
把本地表導入遠程表 


發佈了30 篇原創文章 · 獲贊 8 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章