테이블 값 생성자 (http://msdn.microsoft.com/en-us/library/dd776382(v=sql.100).aspx)를 사용할 때, 여러 행을 삽입하려면 TVC의 행과 일치하도록 보장 된 채워진 ID 열의 순서입니까?SQL Server의 다중 행 삽입에서 ID 할당에 대한 주문 보증
예. 그들은 A = 1, B = 1, A = 2, B = 2와 일치되도록
CREATE TABLE A (a int identity(1, 1), b int)
INSERT INTO A(b) VALUES (1), (2)
이 경우 B와 동일한 순서로, 즉, 할당 될 수있는 기관에 의해 보장 (A)의 값이다.
따라서 OP의 예를 사용하여 OP가 각 행에서 'a'와 'b'사이의 일치를 보장하려면 'INSERT INTO A (b) SELECT b FROM (VALUES (1), (2)) AS v (b) ORDER BY b'. 그게 당신이 말하는거야? –
'order by'를 사용하여 행을 가져 오는 순서 만 보장 할 수 있습니다. select (from order by)를 사용하지 않고 select에서 삽입하는 경우 행이 시작될 때 (특정 순서로) 삽입되는 방법에 대한 보장은 없습니다. 위의 예와 같은 표현식을 사용하면 명시 적으로 사용 된 일부 열을 명시 적으로 포함하고 정렬 된 값을 사용하지 않는 한 보증을하지 않습니다. 위의 예제에서 101,102와 103은 명령받은대로 주문하게됩니다. – jean