2017-01-28 6 views
-1

複数のテーブルからレコードを削除するストアドプロシージャを作成しました。joinを使用して複数のテーブルからレコードを削除する

私のストアドプロシージャは、次のようになります。

create proc SPdellistbollandinvoice 
    @trno nvarchar(50) 
as 
begin 
    delete from listmybill where [email protected] 
    delete from listinvoice where [email protected] 
end 

これは正常に動作しているが、私は参加使って同じことを削除する方法を学びたいです。

これは、私はあなたが単一 `DELETE`文を使用して1台以上のものを削除することはできません

exec SPdellistbollandinvoice '100280120171' 

とメッセージ

(1 row(s) affected) 

(1 row(s) affected) 
+2

を削除するためにやっているものです。もう1つの方法は、テーブルのいずれかを作成してトリガー内の別のテーブルを削除することですが、プロシージャ内のdeleteステートメントだけでなく、すべての削除ステートメントに対してトリガーが起動します。 –

+0

または、テーブル間に外部キーがある場合は、 on deleteカスケード。 –

答えて

-1
 delete bill from listmybill b 
    left join listinvoice i on b.id = i.id 

where [email protected] 
+0

[編集]リンクを使用して、このコードの仕組みを説明してください。将来の読者の説明に役立つように、コードを記述するだけではありません。 [回答]も参照してください。 [ソース](http://stackoverflow.com/users/5244995) –

関連する問題