UPDATE OUTPUTを変数にする
2023-07-25 19:08:28
質問
私は更新と選択を実行しようとしています。基本的に、インデックスに基づいて更新し、更新された行のIDを選択します。
これはOUTPUT句を使用した簡単なものです。
UPDATE Foo
SET Bar = 1
OUTPUT INSERTED.Id
WHERE Baz = 2
しかし、さて、これをどうやって変数に取り込めばいいのでしょうか?
DECLARE @id INT
この3つはうまくいきません。
UPDATE Foo
SET Bar = 1
OUTPUT @id = INSERTED.Id
WHERE Baz = 2
SET @id =
(UPDATE Foo
SET Bar = 1
OUTPUT INSERTED.Id
WHERE Baz = 2)
SET @id =
(SELECT Id FROM (UPDATE Foo
SET Bar = 1
OUTPUT INSERTED.Id Id
WHERE Baz = 2) z)
最後のものは、Management Studio ですべての赤い四角いものが消えたときに、一時的に興奮したからです。残念ながら、私はこのエラーを受け取ります。
A nested INSERT, UPDATE, DELETE, or MERGE statement is not allowed in a SELECT statement that is not the immediate source of rows for an INSERT statement.
どのように解決するのですか?
1行のみの影響であれば、テーブル変数を使用せずに行えます。
DECLARE @id INT
UPDATE Foo
SET Bar = 1, @id = id
WHERE Baz = 2
SELECT @id
関連
-
[解決済み】エラー "INSERT EXEC文はネストできません。" "INSERT-EXEC文の中でROLLBACK文は使用できません。" これを解決するにはどうすればよいですか?
-
[解決済み] SQL Serverでシングルクォートを置換する
-
[解決済み] データセットに対するSSRSクエリの実行に失敗しました
-
[解決済み] 関数内から実行できるのは、関数と一部の拡張ストアドプロシージャのみです。
-
[解決済み] 文字列から特定の文字を削除する
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL ServerでJOINを使用してテーブルを更新しますか?
-
[解決済み】結合を使用したSQL更新クエリ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】フラットファイルの日付カラムで「キャスト指定に無効な文字値があります」を修正する方法とは?
-
[解決済み] プロシージャは 'ntext/nchar/nvarchar' 型のパラメータ '@statement' を想定しています。
-
[解決済み] 各GROUP BY式は、外部参照でない列を少なくとも1つ含む必要があります。
-
[解決済み] 分散型トランザクションを開始できない
-
[解決済み] 累積和の求め方
-
[解決済み] SSISの日付と時刻の連結
-
[解決済み] 一括読み込みができません。オペレーティングシステムのエラーコード5(アクセスが拒否されました。)
-
[解決済み] データベースとスキーマの違い
-
[解決済み] SQLのReplace関数内の正規表現?
-
[解決済み] SQL Serverでforeachを記述する方法とは?