我们有多个应用程序在不同的地方同时运行。
并且所有实例都在单个表insert or update
上执行Orders
查询。
Orders
---------------------------------------
OrderID OrderDate OrderTime OrderAmount
问题是,如果我的应用程序insert or update
的所有实例同时记录,可能会发生什么?
MSSQL数据库如何处理这种情况?
我搜索了ROWLOCK, XLOCK, READPAST
作为concurrent access to MSSQL database
的解决方案,但找不到上述方案的确切答案!
非常感谢任何指针。
答案 0 :(得分:1)
每个INSERT
或UPDATE
将在(隐式)事务中运行,以使语句排队。这应该不是问题。
如果INSERT
或UPDATE
语句是批处理的一部分,其他语句需要不间断地运行(例如首先从表中读取,然后根据结果更新表),你应该考虑将这些陈述括在一个明确的BEGIN TRANSACTION / COMMIT TRANSACTION
条款中。
答案 1 :(得分:0)
您应该阅读Transactions。这样可以避免当前设置中发生的任何数据损坏。