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

2021-10-11 00:24:39 字數 1970 閱讀 2860

1、建立鏈結伺服器(包括遠端以及本地伺服器的鏈結)

exec sp_addlinkedserver 'remote ', 』 ', 'sqloledb ', '遠端伺服器名或ip位址 』

exec sp_addlinkedsrvlogin 'local ', 'false ',null, '使用者名稱 ', '密碼 』

2、資料操作

(1)查詢遠端伺服器資料庫表資料示例

select * from remote .資料庫名.dbo.表名

(2)匯入示例(將遠端資料庫表資料匯入到本地資料庫表中)

select * into 表 from remote .資料庫名.dbo.表名

(3)不再使用時刪除鏈結伺服器

exec sp_dropserver 『remote』, 'droplogins 』

–連線遠端/區域網資料(openrowset/openquery/opendatasource)

3、兩種遠端訪問的方法

(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

(2)openquery用法需要建立乙個連線(固定鏈結)

–首先建立乙個連線建立鏈結伺服器

exec sp_addlinkedserver 'remote ', 』 ', 'sqloledb ', '遠端伺服器名或ip位址 』

–查詢select * from openquery(remote , 'select * from 資料庫.dbo.表名 ')

–把本地表匯入遠端表

insert openquery(remote , '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

–把本地表匯入遠端表

insert opendatasource( 'sqloledb ', 'data source=ip/servername;user id=登陸名;password=密碼 ').資料庫.dbo.表名

select * from 本地表

4、使用場景

(1)如果在同一臺機器上

insert into db1…tablename select * from db2…tablename

(2)如果在同一伺服器上:

insert into db1…tablename select (這裡寫字段,除自增列以外的字段都寫進來) from db2…tablename

Sql Server使用鏈結伺服器遠端取資料

由於最近開發的乙個查詢系統,基本是在其它伺服器的,所以在本地伺服器設計了中間,用來存從遠端伺服器取資料 一種方法是通過,opendatasource來遠端讀取資料 from opendatasource sqloledb data source servername user id myuid pa...

Sql Server使用鏈結伺服器遠端取資料

由於最近開發的乙個查詢系統,基本是在其它伺服器的,所以在本地伺服器設計了中間,用來存從遠端伺服器取資料 一種方法是通過,opendatasource來遠端讀取資料 select from opendatasource sqloledb data source servername user id m...

sqlserver伺服器 急救

今天突然發現,sqlserver伺服器 遠端桌面連不上了,但是資料庫都能正常連線,記得是上次更改了遠端桌面的埠,但是防火牆上沒有開啟規則。現在通過資料庫使用者解決方法如下 作為備忘 開啟xp cmdshell sql server blocked access to procedure xp cmd...