更新单个MSSQL表的C#应用​​程序的多个实例

时间:2014-01-27 08:58:22

标签: c# sql sql-server tsql

我们有多个应用程序在不同的地方同时运行。

并且所有实例都在单个表insert or update上执行Orders查询。

Orders
---------------------------------------

OrderID OrderDate OrderTime OrderAmount

问题是,如果我的应用程序insert or update的所有实例同时记录,可能会发生什么?

MSSQL数据库如何处理这种情况?

我搜索了ROWLOCK, XLOCK, READPAST作为concurrent access to MSSQL database 的解决方案,但找不到上述方案的确切答案!

非常感谢任何指针。

2 个答案:

答案 0 :(得分:1)

每个INSERTUPDATE将在(隐式)事务中运行,以使语句排队。这应该不是问题。

如果INSERTUPDATE语句是批处理的一部分,其他语句需要不间断地运行(例如首先从表中读取,然后根据结果更新表),你应该考虑将这些陈述括在一个明确的BEGIN TRANSACTION / COMMIT TRANSACTION条款中。

答案 1 :(得分:0)

您应该阅读Transactions。这样可以避免当前设置中发生的任何数据损坏。