cho*_*obo 43 t-sql sql-server stored-procedures
我不经常使用存储过程,并且想知道在事务中包装我的选择查询是否有意义.
我的过程有三个简单的选择查询,其中两个使用第一个的返回值.
Mar*_*len 46
在高度并发的应用程序中,它(理论上)可能会在执行其他选择之前修改您在第一个选择中读取的数据.
如果这是您的应用程序中可能发生的情况,您应该使用事务来包装您的选择.确保选择正确的隔离级别,但并非所有事务类型都保证一致的读取.
更新:您可能还会发现这篇文章并发更新/插入解决方案(又名UPSERT)有趣.它为测试提供了几种常见的upsert方法,以查看实际上保证在select和next语句之间不修改数据的方法.结果是令人震惊的我会说.
FIr*_*nda 5
交易通常用来当你有CREATE,UPDATE或DELETE语句,你想拥有原子的行为,那就是,无论是承诺的一切或承诺什么。
CREATE
UPDATE
DELETE
但是,您可以对READselect语句使用事务来执行以下操作: 确保在执行一堆select查询时,没有其他人可以更新目标表。
READ
看看这个msdn帖子。
归档时间:
14 年,3 月 前
查看次数:
36997 次
最近记录:
6 年,3 月 前