我在SSIS的脚本任务中使用update语句来更新表的特定行。此过程在多行循环中发生。
有时会发生另一个应用程序也会针对不同的行集在同一个表上触发更新。对于这个应用程序,我在锁定时遇到死锁异常。
我该如何避免这种情况?我希望两个更新同时工作,因为正在更新的行集是不同的。
是否只能锁定正在更新的那一行?
的问候,
独奏
答案 0 :(得分:1)
从MSDN站点搜索TSQL,UPDATE RowLock。还有PageLock和TableLocks。如果需要更新多个表,也可以使用事务。在读取时,如果脏读取正常,则可能需要使用(NOLOCK)(上方没有读锁定)。
update Production.Location with (ROWLOCK)
set CostRate = 100.00
where LocationID = 1