私は2つのテーブルを持っています。これらのテーブルには、それらの間に 2 つの関係があります。
Table 1
* ID_XPTO (PK)
* Detail
Table 2
* ID_XPTO (FK) (PK)
* ID_XPTO2 (FK) (PK)
この 2 つの関係が存在します。
Table 1 -< Table2
Table 1 -< Table2
私の質問は、テーブル 1 の一部の行を削除する必要があるということです。現在行っているのは、
declare @table Table (xptoTable2 int)
insert into @table
select ID_XPTO2
from Table2
where ID_XPTO = @ID_XPTO
delete from Table2
where ID_XPTO = @ID_XPTO
delete from Table
where ID_XPTO in (select xptoTable2from @table)
table2 で ON DELETE SET NULL を使用できることはわかっています。そうすれば、ID_XPTO2 で null 値を持つすべての行を検索して削除できますが、DBA はそれを使用したくありません。
このプロセスを実行するためのより良い解決策はありますか?