小编Per*_*sen的帖子

IDENTITY和GetDate乱序

我有一个表,其中包含IDENTITY列和GetDate()设置的DateTime列,如下所示:

CREATE TABLE [MyTable](
  [Id] [int] IDENTITY(1,1) ,
  [InsertTime] [datetime]  DEFAULT (getdate()),
  [OtherValues] [int] 
)
Run Code Online (Sandbox Code Playgroud)

所有INSERT都使用IDENTITY和DateTime列的默认值执行,如下所示:

INSERT INTO [MyTable] ([OtherValues]) VALUES (1)
Run Code Online (Sandbox Code Playgroud)

始终作为任何显式交易之外的独立报表.

我希望Id会严格增加,而InsertTime也会增加但不严格.但是在负载很重的情况下,我们会看到以下几个实例:

| Id   | InsertTime              |
|------|-------------------------|
| 3740 | 2015-03-05 10:07:25.560 | 
| 3741 | 2015-03-05 10:07:25.557 |
| 3742 | 2015-03-05 10:07:25.577 |
Run Code Online (Sandbox Code Playgroud)

我们在InsertTime中略有下降.

有谁知道这是怎么发生的,行的"正确"顺序是什么?

sql-server identity getdate

5
推荐指数
1
解决办法
949
查看次数

标签 统计

getdate ×1

identity ×1

sql-server ×1