3

SQLでカスケード削除から値を出力することは可能ですか?

何かのようなもの:

DELETE [Families]
    OUTPUT [deleted].[FamilyID] [deleted].[FamilyName], [Members].[MemberName]
    FROM [Families]
    LEFT JOIN [Members]
        ON [Members].[FamilyID] = [Families].[FamilyID]

合計3人のメンバーを持つ2つの家族があった場合、次のようになります。

[FamilyID]   [FamilyName]   [MemberName]
 12           'Family A'     'Member 1'
 12           'Family A'     'Member 2'
 13           'Family B'     'Member 3'

区切り文字リストにカスケード削除されたメンバーを含むファミリごとに1行を生成するソリューションも許容されます。何かのようなもの:

[FamilyID]   [FamilyName]   [MemberNames]
 12           'Family A'     'Member 1|Member 2'
 13           'Family B'     'Member 3'
4

1 に答える 1

2

私が見つけた最良の解決策は、2つの結果セットをもたらします。

  1. 削除するファミリのIDをテーブル変数に選択します。
  2. テーブル変数に対して内部結合されたファミリメンバーを削除/出力します。
  3. テーブル変数に対して内部結合されたファミリを削除/出力します。
于 2010-10-19T16:39:37.857 に答える