TSQL:如何在不改变表/索引的情况下级联删除

Bog*_*Biv 4 t-sql cascade

我在不应该插入的表中插入了一些数据。我正在尝试删除数据,但它具有 1:M 关系,我还需要删除引用此数据的数据。

我不想改变表/索引,我只需要这个指令来级联:

-- this alters the CONSTRAINT -- not an option:
ALTER TABLE T2
ADD CONSTRAINT fk_employee
FOREIGN KEY (employeeID)
REFERENCES T1 (employeeID)
ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

此外,我希望(阅读 -更喜欢)不要更改 IDE GUI 设置。

Dav*_*ett 12

也许只需在事务中手动删除两次以确保一致性:

BEGIN TRANSACTION
DELETE T2 WHERE employeeID IN (SELECT employeeID FROM T1 WHERE <clauses_to_find_the_records_to_delete>
DELETE T1 WHERE <clauses_to_find_the_records_to_delete>
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

无论如何,您可能想要添加该 FK 约束,无论是否使用级联选项(我非常喜欢不使用级联,因此仍然需要手动排序的删除,在某些情况下非常方便,但会增加危险......),如果是适合您的数据模型。