最近想解决跨数据库的解决方案,查了一些资料,没有跨数据库外键,但可以实现跨数据库事务,也算了一点补偿了吧。
SET XACT_ABORT ON
GO
BEGIN TRAN
insert into DB_B.dbo.Table1 select * from DB_A.dbo.Table1 where age>30
delete from DB_A.dbo.Table1 where age>30
COMMIT TRAN
GO
用当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。为 OFF 时,只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。编译错误(如语法错误)不受 SET XACT_ABORT 的影响。