我们在不同的数据库服务器(MS SQL Server 2008)上有两个数据库。
我们需要在两张表中插入数据,两台数据库服务器各一张,而且都需要在一个事务中,所以我们需要一个分布式事务。
我们从 .NET 程序中插入数据,我认为这里有两个选择:
在 .NET 中使用 TransactionScope 类来启动分布式事务。这在测试环境中的我的开发机器上工作,但只有在我设置 DTC 以允许与网络通信之后。但是,.NET 应用程序最终将在客户端计算机上运行,并且他们可能没有在其操作系统上相应地设置 DTC。他们是“普通”用户,他们的机器上没有管理员。
所以我的第一个问题是:即使没有设置 DTC,我是否可以在计算机上使用 .NET 中的 TransactionScope 类 - 他们是否可以通过我的 .NET 程序以编程方式解决这个问题?
如果 .NET 方式不是一个选项,那么使用通过链接服务器构建分布式事务的存储过程是一个好主意吗?
谢谢大家的回复!