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

【新手有关问题】怎么防止同时执行同一个存储过程

2012-09-16 
【新手问题】如何防止同时执行同一个存储过程?因为我的数据库有个表,每条数据不同,在用户读取一条数据之后,

【新手问题】如何防止同时执行同一个存储过程?
因为我的数据库有个表,每条数据不同,在用户读取一条数据之后,就会删除这条数据,并且把这条数据存在另外一个表里。我把这3个操作写在了同一个存储过程当中,我担心用户多了,就会出现两个用户同时执行这个存储过程,这样有可能就读取到相同的数据。请问如何避免这个问题?

只要能实现相同的功能,并且避免读到相同的数据,任何方法都可以。当然越简单越好。

[解决办法]
使用事务

SQL code
BEGIN TRANSACTIONINSERT INTO ...--你的语句   SAVE TRANSACTION savepoint(根据你的情况可以设置保存点)IF @@Error<>0BEGINPRINT '不能重复插入'ROLLBACK TRANSACTION--事务回滚语句ENDELSEBEGINPRINT '插入成功'COMMIT TRANSACTION--事务提交语句ENDEND 

热点排行