高分求教:请问SQLServer如何进行跨数据库操作的回滚?

ar7_top 2005-12-14 11:11:59
我现在需要同时对两个数据库进行Insert操作,
我希望

如果第二个数据库如果Insert失败
第一个数据库Insert成功的数据也要回滚掉

不知道该怎样操作。
请教各位达人。
...全文
238 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2005-12-14
  • 打赏
  • 举报
回复
两个数据库在同一实例下的话, 普通的事务处理语句就行了.

示例

set xact_abort on
begin tran
insert db1.dbo.tb select ...
insert db2.dbo.tb select ...
commit tran
子陌红尘 2005-12-14
  • 打赏
  • 举报
回复
启用分布式事务


下例在本地和远程数据库上更新作者的姓。本地和远程数据库将同时提交或同时回滚本事务。

说明 除非正在运行 Microsoft® SQL Server™ 的计算机上当前装有 MS DTC,否则本例会产生错误信息。关于安装 MS DTC 的更多信息,请参见 Microsoft 分布式事务处理协调器文档。


USE pubs
GO
BEGIN DISTRIBUTED TRANSACTION
UPDATE authors
SET au_lname = 'McDonald' WHERE au_id = '409-56-7008'
EXECUTE remote.pubs.dbo.changeauth_lname '409-56-7008','McDonald'
COMMIT TRAN
GO
cosio 2005-12-14
  • 打赏
  • 举报
回复
在两个INSERT都加入事务的判断就可以了!

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧