0

次が正しい場合: 複数の挿入を含む SQL 文字列があります (ストアド プロシージャを使用):

「EXEC SPInsertData ... EXEC SPInsertData ... EXEC SPInsertData ...」

新しいレコードごとに自動インクリメントされる ID 列の ID は、次のレコードの ID よりも小さくなります。

たとえば、指定された SQL 文字列を実行した後、最初のレコードの ID は 2 番目のレコードの ID よりも小さく、その ID は 3 番目のレコードの ID よりも小さいですか?

4

2 に答える 2

1

はい、自動インクリメント ID 列が正しい場合

于 2009-07-28T17:26:57.630 に答える
0

本質的に、自動インクリメントはインクリメントの量だけ挿入ごとに進みます。

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
于 2009-07-28T19:01:41.667 に答える