close

先連結.

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

 

--創建連結伺服器

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)

--1openrowset

--查詢示例

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

 

--2openquery用法需要創建一個連接

--首先創建一個連接創建連結伺服器

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

 

--3opendatasource/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 本地表

 


然後:

SQL code

select * from machine1.db1.dbo.tb where col like '%123%'

union all

select * from machine2.db2.dbo.tb where col like '%123%'

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 hsiung03 的頭像
    hsiung03

    hsiung.博格 ERP軟體

    hsiung03 發表在 痞客邦 留言(0) 人氣()