0
在Sql Server 2008 R2中,我有一個名爲Emp的表,並且我試圖在更新後更新事務(外部tran)中的一些值在提交之前,我開始了另一個事務,在我嘗試從同一個表(Emp)中選擇數據,但是通過一個環回鏈接服務器。 TSQL的是這樣的:在一個針對回送鏈接服務器的事務中的select語句永遠不會停止
USE MASTER
GO
EXEC sp_addlinkedserver @server = N'loopback',@srvproduct=N'',@provider = N'SQLNCLI', @datasrc = @@SERVERNAME,@catalog = 'MstrDtl'
GO
EXEC sp_serveroption loopback,N'remote proc transaction promotion','FALSE'
Go
create SYNONYM loopy FOR loopback.MstrDtl.dbo.Emp
use MstrDtl
BEGIN TRAN OuterTran
BEGIN
update table dbo.Emp set Salary = 123456 where Name='abcdx'
BEGIN TRAN InnerTran
select Salary from loopy where Name = 'abcdx'
COMMIT TRAN InnerTran
ROLLBACK TRAN OuterTran
END
,所以我有兩個問題:
- 我可以在查詢中獲取舊值(與更新受影響的行),使用這種方式InnerTran內部環回?
- 查詢永不停止,有什麼想法?