求触发器:
A地有数据库Mac,B地也有Mac,他们的表结构完全相同。如何实现A地的Mac中的记录增删改,B地的Mac中的记录也相应的增删改;B地的Mac中的记录增删改,A地的Mac中的记录也相应的增删改。A,B地在同一局域网内,A地IP地址:192.168.0.1;B地IP地址:192.168.0.2数据库Mac结构各位兄弟们帮忙,求具体代码,分不够再加
A地有数据库Mac,B地也有Mac,他们的表结构完全相同。如何实现A地的Mac中的记录增删改,B地的Mac中的记录也相应的增删改;B地的Mac中的记录增删改,A地的Mac中的记录也相应的增删改。A,B地在同一局域网内,A地IP地址:192.168.0.1;B地IP地址:192.168.0.2数据库Mac结构各位兄弟们帮忙,求具体代码,分不够再加
@srvproduct = N' ',
@provider = N'SQLOLEDB',
@datasrc = N'ServerNetName',
@catalog = N'库名'
GOCreate trigger trigname on tablename
for insert
as
begin
Insert into LinkServer.库名.dbo.tablename
select * from Inserted
end
go
CREATE trigger t_test on Mac_test
for update
as
set XACT_ABORT on
--启动远程服务器的MSDTC服务
--exec master..xp_cmdshell 'isql /S"192.168.1.107" /U"sa" /P"sa" /q"exec master..xp_cmdshell ''net start msdtc'',no_output"',no_output--启动本机的MSDTC服务
--exec master..xp_cmdshell 'net start msdtc',no_output--进行分布事务处理,如果表用标识列做主键,用下面的方法
BEGIN DISTRIBUTED TRANSACTION
delete from openrowset('sqloledb','192.168.1.107';'sa';'sa',Mac.dbo.Mac_test)
where id in(select id from deleted)
insert into openrowset('sqloledb','192.168.1.107';'sa';'sa',Mac.dbo.Mac_test)
select * from inserted
commit tran