2009-07-28 3 views
0

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

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

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

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

ответ

1

Да, если это Автоинкрементный столбец идентификации, правильно

0

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

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