複合キーを持つテーブルの削除ステートメントを作成することに頭を悩ませています。
私は次のようなものを作成したいと思います:
DELETE
FROM
table_example1
WHERE
COLUMN1, COLUMN2
IN
(SELECT COLUMN1, COLUMN2 FROM table_example2
WHERE
COLUMN_DATETIME > @Period);
COLUMN1
とCOLUMN2
の組み合わせのみが一意であり、各列自体は一意ではないことに注意してください。
私は実際にこれを行う方法に頭を悩ませているようには思えません。
このようなものでなければなりません:
DELETE A
FROM
table_example1 AS A
INNER JOIN table_example2 AS B
ON A.COLUMN1 =B.COLUMN1
AND A.COLUMN2 = B.COLUMN2
WHERE
COLUMN_DATETIME > @Period;
または:
DELETE FROM A
FROM dbo.table_example1 AS A
WHERE EXISTS
(
SELECT *
FROM dbo.table_example2 AS B
WHERE
B.COLUMN1 = A.COLUMN1
AND B.COLUMN2 = A.COLUMN2
AND B.COLUMN_DATETIME > @Period
);