首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何加锁

2012-02-29 
怎么加锁?有个储存过程,先判断有没有插入过这条记录,之后再插入记录.但有机会会使得插入了两条一样的记录,

怎么加锁?
有个储存过程,先判断有没有插入过这条记录,之后再插入记录.但有机会会使得插入了两条一样的记录,可能是因为有两个用户同时执行储存过程,在另一个过程插入之前做了个判断,所以结果插入了两条记录.
有没有办法防止这情况?

[解决办法]

BEGIN TRANSACTION

SELECT au_lname FROM authors WITH (TABLOCKX) ---查询比较
------------------使用表的排它锁。该锁可以防止其它事务读取或更新表,并在语句或事务结束前一直持有。


------在这里更新数据


--提交事务
COMMIT TRANSACTION

热点排行