MSDN上看了一下說是sql server 2005不支持在分布式事務(wù)處理中存在指向本地的鏈接服務(wù)器(環(huán)回鏈接服務(wù)器)
個(gè)人嘗試了下是由于在雙向的sql server訪問中采用了鏈?zhǔn)椒绞皆L問(LinkedServer方式),遇到這種情況只需要將原來訪問對(duì)方數(shù)據(jù)庫(kù)的語(yǔ)句:
復(fù)制代碼 代碼如下:
select * from linkedServerA.dbo.table1
修改為:
復(fù)制代碼 代碼如下:
select * from dbo.table1
即可。
觸發(fā)器代碼如下:
復(fù)制代碼 代碼如下:
create trigger tgr_dressNotice_insert
on dress_notice_config
---with encrypion –--加密觸發(fā)器
after insert ----update級(jí)別trigger
as
begin
--as raisError('tgr_dressNotice_insert觸發(fā)器被觸發(fā)', 16, 10);
/* 定義變量 */
declare @sDBServer char(20) /*用于存放目的數(shù)據(jù)庫(kù)*/
declare @sSql varchar(600)
declare @server varchar(100)
declare @oadb varchar(100)
select @oadb=db_server from dic_organ where valid='1' and rank in('A','B') and organ_id='000000'
set @server=rtrim(@oadb) + '.dbo.spoa_exec_string'
/*define cursor*/
declare db_cursor cursor for
select db_server from dic_organ where valid='1' and rank in('A','B') and organ_id>'000000'
/*open cursor*/
OPEN db_cursor
FETCH NEXT FROM db_cursor
INTO @sDBServer
while(@@Fetch_status = 0)
begin
/*將數(shù)據(jù)同步更新到各個(gè)分局的數(shù)據(jù)庫(kù)中*/
set @sSql='delete from ' + RTRIM(@sDBServer) + '.dbo.dress_notice_config'
print @sSql
exec @server @sSql
set @sSql='insert into ' + RTRIM(@sDBServer) + '.dbo.dress_notice_config select * from dress_notice_config'
print @sSql
exec @server @sSql
FETCH NEXT from db_cursor
into @sDBServer
end
--最后關(guān)閉游標(biāo)
close db_cursor
deallocate db_cursor
end
go
您可能感興趣的文章:- SQL SERVER中各類觸發(fā)器的完整語(yǔ)法及參數(shù)說明
- SqlServer觸發(fā)器詳解
- SQL Server實(shí)現(xiàn)用觸發(fā)器捕獲DML操作的會(huì)話信息【實(shí)例】