32
私はINSERT INTO SELECT
クエリを持っています。 SELECT
ステートメントでは、フィールドに増分数値を追加するサブクエリがあります。 SELECT
クエリが1つのレコードのみを返す場合、このクエリはうまく動作しますが、複数の行を返した場合、すべての行のインクリメンタルフィールドに同じ番号が挿入されます。 毎回増分値を追加する方法はありますか?SQL ServerのINSERT INTO SELECTクエリのフィールドに増分数値を追加します。
INSERT INTO PM_Ingrediants_Arrangements_Temp
(AdminID,ArrangementID,IngrediantID,Sequence)
(SELECT
@AdminID, @ArrangementID, PM_Ingrediants.ID,
(SELECT
MAX(ISNULL(sequence,0)) + 1
FROM
PM_Ingrediants_Arrangements_Temp
WHERE
[email protected])
FROM
PM_Ingrediants
WHERE
PM_Ingrediants.ID IN (SELECT
ID
FROM
GetIDsTableFromIDsList(@IngrediantsIDs))
)
第3のオプションでは、シーケンスフィールドの自動インクリメントを行う必要はありません。私はシーケンスから既存の番号を取得し、その列に次の増分番号を挿入する必要があります –
Scnerio 2は私の状態で動作します。すぐに助けてくれてありがとう。 –
::私のsquence列はnull値を許可せず、私のテーブルはレコードを持っていません。その例外を投げる.... –