我需要生成一个序列号用作主键(在遗留系统中)
我想知道以下解决方案在竞争条件下是否会遇到并发问题。
CREATE TABLE SequenceGenerator
(
Sequence INT
)
INSERT INTO SequenceGenerator SELECT 0
这是存储过程,每当我需要下一个序列号时我都会调用它
CREATE PROCEDURE GetNextSequence
AS
SET NOCOUNT ON
DECLARE @NextSequence INT
UPDATE SequenceGenerator SET
@NextSequence = Sequence,
Sequence = Sequence + 1
RETURN @NextSequence + 1
Thanks
Yes.
是否有某种原因无法使用身份字段(即:identity(1,1)
) 反而?
如果您想使用上面的代码,您当然应该将其包装在可序列化的事务中并处理任何死锁情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)