1つのIDフィールド(ID)を持つ(tableA)があり、1回の挿入操作で一度に複数の行を挿入する必要があるため、ストアドプロシージャへの受け渡しパラメーターとしてテーブル構造を使用します
挿入されたIDが挿入順序で必要なので、SPで次のクエリを実行しています(tableBはtableAと同じ構造です)。
CREATE PROCEDURE ssp_Test
(
tableA tableAType
)
AS
BEGIN
INSERT INTO tableB(field1, field2, ...)
OUTPUT INSERTED.ID
SELECT field1, field2, ... from tableA
END
上記の手順を100レコードで実行すると、tableBに挿入された順序で新しいIDフィールドが返されますが、500レコードで実行すると、挿入されたすべてのIDが合理的な順序で返されません。なぜこれが発生するのでしょうか。
そこに配置して並べ替えて返すために別の一時テーブルは必要ありません。なぜそれが発生するのかを知りたいだけです。並べ替えに追加の一時テーブルを使用せずに解決策はありますか?