最近在做数据库事务的时候,有些疑问,想在这里请教下各位,
(1),同一个数据库实例中两个不同的库之间的事务
(2),多个不同实例(不同的服务器)之间使用分布式事务
第一种情况,我目前想到的解决办法是
a. 创建一个数据库连接,然后用 "库名..表名"访问另外一个库中的表,这样来做事务的操作!
b.创建两上针对不同的连接的事务,然后分别执行,统一提交和回滚!
c.使用分布式事务(DTC),这个没有具体设置和使用过
我想问的问题是,我(a)中的方案是否可行,使用use 或 库名..表名来访问另一个数据库?
b方案和c方案哪个效率更高,可靠性更好!大家一般在处理(同一个实例不同库之间的事务)及(不同服务器之间下的分布式事务)的。希望尽可能详细点!谢谢!
第一种情况:
A 方案: 没什么问题,不过特殊情况下需要开启Guest用户,以便及时更换连接,切换连接需要特别注意;
B,C根据需要,根据你需求的复杂度,B方式没用过,个人认为C更好点,DTC对权限的要求要高点。
第二种情况:不同服务器间需要用 链接服务器(EXEC sp_addlinkedserver ),这时候要注意名称解析等问题。