/*不同伺服器資料庫之間的資料操作*/
--建立鏈結伺服器
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
--把本地表匯入遠端表
分布式 分布式鎖
本質是利用redis的setnx 方法的特性來加鎖,setnx 即key不存在則設定key,否則直接返回false,要求在分布式系統中使用同乙個redis服務,以下提供兩種解決方案 1 直接使用redistemplate 這其實並不能完全保證高併發下的安全問題,因為可能在鎖過期之後該執行緒尚未執行完...
分布式 分布式事務
是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...
分布式之分布式事務
被人問到分布式事務,之前學rabbitmq 的時候學到過rabbitmq 高階的事務,因為沒有用過,所有沒有回答好。這裡總結一下。1.單機版事務。事務的四大特性 acid a.原子性 b.一致性 c.隔離性 d.永續性 單機事務可以通過設定事務的隔離級別 參見spring 的事務隔離級別 2.分布式...