質問を正しく理解している場合は、select を使用して各テーブルのキー値を取得することでこれを行うことができます。次に、3 つの削除ステートメントを使用します
DECLARE @RecIds AS TABLE (sTableName VARCHAR(100), recidTableXRecord INT)
INSERT INTO @RecIds (recidTable1 , recidTableXRecord)
SELECT 'Table1', <Unique Record Id for table 1>
FROM .... ( ) AS TableRecords1
INSERT INTO @RecIds (recidTable2 , recidTableXRecord)
SELECT 'Table2', <Unique Record Id for table 1>
FROM .... ( ) AS TableRecords1
INSERT INTO @RecIds (recidTable3 , recidTableXRecord)
SELECT 'Table3', <Unique Record Id for table 1>
FROM .... ( ) AS TableRecords1
...その後削除
DELETE FROM TABLE1 WHERE recidTable1 IN (SELECT recidTableXRecord FROM @RecIds WHERE sTableName ='TABLE1')
DELETE FROM TABLE2 WHERE recidTable1 IN (SELECT recidTableXRecord FROM @RecIds WHERE sTableName ='TABLE2')
DELETE FROM TABLE3 WHERE recidTable1 IN (SELECT recidTableXRecord FROM @RecIds WHERE sTableName ='TABLE3')
...もっと良い方法があるかもしれませんが、これは機能し、保守も簡単です。すべてをトランザクションに入れることをお勧めします。