Зависимость в значениях столбца идентификаторов после нескольких вставок SQL

Если верно следующее: есть строка SQL с несколькими вставками (с использованием хранимой процедуры):

"EXEC SPInsertData... EXEC SPInsertData... EXEC SPInsertData..."

Идентификатор в столбце идентификаторов, который автоматически увеличивается, каждой новой записи меньше, чем идентификатор следующей записи.

Например, после выполнения заданной строки SQL идентификатор первой записи меньше идентификатора второй записи, а ее идентификатор меньше идентификатора третьей записи?

2 ответа

Решение

Да, если это автоматически увеличивающийся столбец идентификаторов

По своей природе автоинкременты идут вперед с каждой вставкой на величину приращения.

MS SQL Server предлагает способ создания обратного порядка. Посмотрите здесь

create table #test
(
    TestId INT IDENTITY (2, -1),
    DateTimeStamp   DateTime
)
GO
INSERT INTO #test (DateTimeStamp) Values (GETDATE());
INSERT INTO #test (DateTimeStamp) Values (GETDATE());
INSERT INTO #test (DateTimeStamp) Values (GETDATE());
INSERT INTO #test (DateTimeStamp) Values (GETDATE());
INSERT INTO #test (DateTimeStamp) Values (GETDATE());
INSERT INTO #test (DateTimeStamp) Values (GETDATE());
INSERT INTO #test (DateTimeStamp) Values (GETDATE());
INSERT INTO #test (DateTimeStamp) Values (GETDATE());
GO
SELECT * FROM #test

Результаты:

TestId      DateTimeStamp
2           2009-07-28 15:02:09.200
1           2009-07-28 15:02:09.200
0           2009-07-28 15:02:09.200
-1          2009-07-28 15:02:09.200
-2          2009-07-28 15:02:09.203
-3          2009-07-28 15:02:09.203
-4          2009-07-28 15:02:09.203
-5          2009-07-28 15:02:09.207
Другие вопросы по тегам