关于数据库死锁的问题

我写的存储过程,主要语句有:
insert into T(code,amount)values('!@#$%',xx) ,  
update T set code=yy where code='!@#$%',

有老大说会发生死锁,给改成:
insert into T(amount)values(xx) ,  
set @currentid = @@identity,  
update T set code=yy where id = @currentid,

气死,这两条语句有什么区别?

到底怎么产生死锁,谁能给一个必然死锁的例子看看?.

弑天下
浏览 615回答 2
2回答

ibeautiful

你好,我尝试作答一下从你的题目中我先推论你的表结构为T { id[自增], code, amount }INSERT INTO T (   code,   amount ) VALUES (  '!@#$%',  xx)UPDATE T SET   code = yy WHERE   code = '!@#$%' --你这里的目的是更新上面插入的行没做吧./*  但是如果其他的事务也插入了code值为'!@#$%'的话~你说会不会发生问题呢?  而你老大的where id = @@identity 你说还会不会发生问题呢?*/

qq_花开花谢_0

区别应该在 identity 和 !@#$% .
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server