Зависимость значений столбца идентификаторов после нескольких вставок SQL
Вопрос
Если следующее верно:Существует строка SQL с несколькими вставками (с использованием хранимой процедуры):
"EXEC SPInsertData...EXEC SPInsertData...EXEC SPInsertData..."
Идентификатор в столбце идентификаторов, который автоматически увеличивается, каждой новой записи меньше идентификатора следующей.
Например.после выполнения данной строки SQL идентификатор первой записи меньше идентификатора второй записи, а ее идентификатор меньше идентификатора третьей записи?
Решение
Да, если это правильный столбец идентификаторов с автоматическим приращением.
Другие советы
По своей природе автоинкременты увеличиваются с каждой вставкой на величину приращения.
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