2

テーブル値コンストラクター (http://msdn.microsoft.com/en-us/library/dd776382(v=sql.100).aspx) を使用して複数の行を挿入する場合、入力された ID 列の順序は一致することが保証されますTVCの行?

例えば

CREATE TABLE A (a int identity(1, 1), b int)

INSERT INTO A(b) VALUES (1), (2)

エンジンによって保証される a の値は、b と同じ順序で割り当てられます。つまり、この場合は、a=1、b=1 および a=2、b=2 に一致します。

4

2 に答える 2

-2

ワンショットでレコードを挿入する限り、それは異なります。たとえば、挿入後に a=2 のレコードを削除してから再度値 b=2 を再挿入すると、ID 列の値は max(a)+1 になります。

デモンストレーションする

 DECLARE @Sample TABLE
 (a int identity(1, 1), b int)

 Insert into @Sample values (1),(2)

a   b
1   1
2   2

 Delete from @Sample where a=2

 Insert into @Sample values (2)
 Select * from @Sample

 a  b
 1  1
 3  2
于 2012-06-27T07:09:19.373 に答える