1
我具有相同的本地和遠程數據庫結構,並使用 鏈接的服務器連接到遠程數據庫。 我的本地數據庫SQL2000和遠程一個是SQL2008 我的本地表:正在使用交易與鏈接服務器通信良好?
tbl_name
Id Name flag
1 Raymond 1
2 Sara 1
3 Souzan 2
我的遠程表
tbl_name
Id Name
現在我要插入每一條記錄與falg field
值= 1到遠程表,然後刪除本地數據庫中插入的記錄。
create proc TransferInsertedRecords
as
begin
create temp @table
(
id int,
name nvarchar(10)
)
insert into @temp
select id,name from tbl_name
where flag=1
Insert into RemoteServer.dbo.Worker.tbl_Names.name
values select name from @temp
delete from t1
from tbl_name t1
inner join @temp t2
on t1.id=t2.id and flag=1
end
我有一個工作,每5分鐘運行一次這個程序。 如何確保遠程數據庫中的每個插入記錄都將在本地數據庫中刪除? 我的意思是關於連接丟失。假設一些數據被插入到遠程數據庫中,但是在插入其餘數據並在本地數據庫中刪除它們之前,連接會丟失。
如果是的話,我應該使用DISTRIBUTED TRANSACTION
哪裏應該放COMMIT TRANSACTION or ROLLBACk
聲明。
我應該在哪裏根據我的代碼放置CoMMIT和ROLLBACK? – 2011-05-13 17:54:10