J'essaie d'envelopper ma tête autour de créer une instruction DELETE pour une table avec une clé composite.
Je voudrais créer quelque chose comme:
DELETE
FROM
table_example1
WHERE
COLUMN1, COLUMN2
IN
(SELECT COLUMN1, COLUMN2 FROM table_example2
WHERE
COLUMN_DATETIME > @Period);
Garder à l'esprit que la combinaison de COLUMN1
et COLUMN2
est unique, chaque colonne seule n'est pas unique.
Je ne peux pas sembler avoir la tête autour de la façon dont je ferais cela.
Devrait être quelque chose comme ça:
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;
Alternativement:
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
);