SQLSERVER分布式事務(wù)使用實(shí)例
--BEGIN DISTRIBUTED TRANSACTION [transactionname]
--標(biāo)志一個(gè)由分布式事務(wù)處理協(xié)調(diào)器MSDTC管理的TSQL分布式事務(wù)開始
--SERVER A服務(wù)器為主控服務(wù)器。當(dāng)連接發(fā)出后續(xù)COMMIT TRANSACTION或
--ROLLBACK TRANSACTION語句時(shí),主控服務(wù)器請(qǐng)求MSDTC在所涉及的服務(wù)器間管理
--分布式事務(wù)的完成
--SQLSERVER使用鏈接服務(wù)器或者遠(yuǎn)程服務(wù)器作為分布式事務(wù)處理的平臺(tái),提供
--遠(yuǎn)程存儲(chǔ)過程調(diào)用和分布式查詢
--當(dāng)使用分布式事務(wù)進(jìn)行一個(gè)遠(yuǎn)程存儲(chǔ)過程調(diào)用和一個(gè)分布式查詢時(shí),在SERVER A
--上發(fā)出BEGIN DISTRIBUTED TRANSACTION ,該連接調(diào)用SERVER B上的存儲(chǔ)過程
--和SERVER C上的另一個(gè)存儲(chǔ)過程,并且SERVER C上的存儲(chǔ)過程對(duì)SERVER D執(zhí)行一個(gè)
--分布式查詢,則四個(gè)SQLSERVER服務(wù)器進(jìn)入分布式事務(wù)中,SERVER A是該事務(wù)的創(chuàng)建者
--和控制服務(wù)器
--創(chuàng)建分布式事務(wù),在本地和遠(yuǎn)程數(shù)據(jù)庫同時(shí)刪除一條記錄,其中,遠(yuǎn)程SQLSERVER
--的實(shí)例名稱為RemoteServer。本地和遠(yuǎn)程數(shù)據(jù)庫同時(shí)提交或同時(shí)回滾該事務(wù)。
--注意,執(zhí)行分布式查詢或調(diào)用存儲(chǔ)過程時(shí),使用4部分名稱限定規(guī)則
--前提:本機(jī)的MSDTC和遠(yuǎn)程機(jī)器的MSDTC服務(wù)要打開
--本機(jī)和遠(yuǎn)程機(jī)器能互相ping通
--數(shù)據(jù)庫端口能互相telnet通
--創(chuàng)建一個(gè)鏈接服務(wù)器到遠(yuǎn)程機(jī)器WIN7U-20130414Z
USE [GPOSDB]
GO
SELECT * FROM [SystemPara] WHERE [Name]='HDTPort'
SELECT * FROM [WIN7U-20130414Z].[GPOSDB].dbo.[SystemPara] WHERE [Name]='HDTPort'
USE [GPOSDB]
GO
BEGIN DISTRIBUTED TRANSACTION
--從本地?cái)?shù)據(jù)庫刪除一條記錄
DELETE FROM [JOE].[GPOSDB].[DBO].[SystemPara]
WHERE [Name]='HDTPort'
--從遠(yuǎn)程數(shù)據(jù)庫中刪除一條記錄
DELETE FROM [GPOSDB].[dbo].[SystemPara]
WHERE [Name]='HDTPort'
COMMIT TRAN
GO
--個(gè)人嘗試了下是由于在雙向的sql server訪問中采用了鏈?zhǔn)椒绞皆L問(LinkedServer方式),
--遇到這種情況只需要將原來訪問對(duì)方數(shù)據(jù)庫的語句:
--select * from linkedServerA.dbo.table1
--修改為:
--select * from dbo.table1即可。
--標(biāo)記下,以便以后解決。
相關(guān)文章
sqlserver數(shù)據(jù)庫移動(dòng)數(shù)據(jù)庫路徑的腳本示例
前段時(shí)間做過這么一件事情,把原本放在c盤的所有數(shù)據(jù)庫(除了sql server系統(tǒng)文件外)文件Move到D盤,主要是為了方便后續(xù)管理以及減少磁盤I/O阻塞(C,D是2個(gè)獨(dú)立磁盤)。腳本需輸入2個(gè)參數(shù):目標(biāo)數(shù)據(jù)庫名字和目標(biāo)目錄2013-12-12
遠(yuǎn)程連接阿里云SqlServer 2012 數(shù)據(jù)庫服務(wù)器的圖文教程
在使用 阿里云 上的一些產(chǎn)品時(shí),遇到不少坑,安裝IIS 時(shí),遇到因買的配置過低,虛擬內(nèi)存不足,而導(dǎo)致 IIS 總是安裝失敗,下面小編給大家分享遠(yuǎn)程連接阿里云SqlServer 2012 數(shù)據(jù)庫服務(wù)器的圖文教程,一起看看吧2017-09-09
SQL中遇到多條相同內(nèi)容只取一條的最簡單實(shí)現(xiàn)方法
本文主要介紹SQL中遇到多條相同內(nèi)容只取一條的最簡單實(shí)現(xiàn)方法,比較實(shí)用,希望能給大家做一個(gè)參考。2016-06-06
SQL Server 2019 密碼修改的實(shí)現(xiàn)步驟
為了保護(hù)數(shù)據(jù)庫中的數(shù)據(jù),我們經(jīng)常需要定期更改數(shù)據(jù)庫用戶的密碼,本文主要介紹了SQL Server 2019 密碼修改的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
MSSQL 計(jì)算兩個(gè)日期相差的工作天數(shù)的語句
MSSQL計(jì)算兩個(gè)日期相差的工作天數(shù)的代碼,需要的朋友可以參考下。2009-09-09
如何在SQLSERVER中快速有條件刪除海量數(shù)據(jù)
如何在SQLSERVER中快速有條件刪除海量數(shù)據(jù)...2006-09-09

