我遇到了一个关于触发器和
我需要想法来自己生成身份值。我不能使用GUID,因为顺序对我很重要。 如果我将Id列替换为带有默认值
谢谢
@@IDENTITY
的众所周知的问题。
我创建了一个新的审计表和一个触发器来在其中插入审计行。
我们使用一款软件,它正在使用@@IDENTITY
,这会导致与触发器插入新行时生成的Id发生冲突。
我无法访问正在使用@@IDENTITY
的代码。我需要想法来自己生成身份值。我不能使用GUID,因为顺序对我很重要。 如果我将Id列替换为带有默认值
GETDATE()
的datetime列,那么它是否保证是唯一的?谢谢
这是隐式地在它自己的事务中执行的,并且将保证唯一值。
- MatBailieMAX(ID)
,然后在另一个语句中使用它,除非使用事务和表/行锁定,否则会创建竞争条件。然而,当MAX(ID)
在子查询中获取时,整个查询是一个单独的语句,因此已经隐式地处于自己的事务中。 - MatBailie