Зависимость в значениях столбца идентификаторов после нескольких вставок 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