そのため、行の小さなバッチ(<10)を一度にテーブルに挿入しようとしています。データはテーブル値パラメーターにありますが、挿入する前に、すべての行に共通するいくつかの列を追加する必要があります。私はこれを行う2つの方法を試しました:
INSERT INTO endTable
([col1],[col2],[commoncol1],[commoncol2])
SELECT
t.col1, t.col2, @CommonValue1, @CommonValue2
FROM startTable t
また、共通変数を一時テーブル変数に入れてから、次のようにstartTableと相互結合することでそれを実行しようとしました。
DECLARE @tempTable TABLE([temp1],[temp2])
INSERT INTO @tempTable(temp1,temp2) VALUES (@CommonValue1, @CommonValue2)
INSERT INTO endTable
([col1],[col2],[commoncol1],[commoncol2])
SELECT
a.col1, a.col2, b.temp1, b.temp2
FROM startTable a CROSS JOIN @tempTable b
startTableに複数の行がある場合に限り、これらの両方の試行で同じエラーが発生します。
サブクエリは複数の値を返しました。サブクエリが=、!=、<、<=、>、> =の後に続く場合、またはサブクエリが式として使用される場合、これは許可されません。
ループに頼らずにこれらの挿入を実行したいと思っていましたが、SQLにあまり詳しくないので、運が悪かったのか、明らかな何かが欠けているのかわかりません。どんな助けでも大歓迎です。