ここでいくつかの記事を読んでいますが、わかりません。SQL Server - サブクエリが1つ以上の値を返しました
私の場合は、テーブルを持っている、の2つの列IDと「親」としましょう、はを削除しました。
IDはintで、DELETEDはビット列です。
私は別のテーブルを持っています。列ID、ID_PARENT、NAME、親テーブルとして削除された 'Child'としましょう。
UPDATE
[dbo].[Child]
SET
[DELETED] = I.[DELETED]
FROM
INSERTED I INNER JOIN [dbo].[Child] AS c
ON I.ID = c.ID_PARENT
WHERE
c.[NAME] IS NOT NULL;
片親ことに留意してください:
IDとID_PARENTはint型 NAMEは、nvarchar型 DELETEDは、子テーブルを更新し、私はテーブルの親のUPDATEのトリガーを作成している
ビットにあるあるあります多くの子供を持つことができ、1人の子供は親を1人しか持たない。
は、だから私は、クエリの下に行うとき:もちろん
UPDATE [dbo].[Parent]
SET DELETED = 1
WHERE ID IN (100, 200);
、これは多くの行に影響します。私は以下のエラーを受け取ります:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
はあなたのトリガーを確認してください - 私はあなたが正しいです@Bridgeあなたが(例えば、設計が不十分な場合)のみ1行が一度に更新されると仮定したUpdate' '上で動作する1 – Bridge
を持って賭けます。私は他のトリガーをチェックしており、エラーの原因となっているテーブルChildに1つあります。ありがとう! – user1624552
問題ありません - その旨の回答を投稿して受け入れてください。他の人があなたの質問が解決されていることを知ってください:) – Bridge