Jam*_*ees 0 sql t-sql sql-server
我想知道是否可以执行以下操作,我有 3 个要从中删除数据的表:Table1、Table2、Table3
总是会有一个记录Table1,有可能会或可能不会是一个相关的记录中Table2和Table3。
所以我想我可以做到以下几点:
DELETE FROM dbo.Table1, dbo.Table2, dbo.Table3
FROM Table1 t1
LEFT JOIN dbo.Table2 t2 ON t1.Id = t2.Id
LEFT JOIN dbo.Table3 t3 ON t3.Id = t1.Id
WHERE t1.Id = @Id;
Run Code Online (Sandbox Code Playgroud)
但我Incorrect syntax near ','.因为这DELETE FROM dbo.Table1, dbo.Table2, dbo.Table3条线得到了一个。
期望的结果是使用该Where子句删除 3 个表中的所有数据。
我不知道如何完成这个。
一次只能从一张表中删除。据推测,您需要级联约束:
alter table2 add constraint fk_table2_table1
foreign key (id) references table1(id)
on delete cascade;
alter tablee add constraint fk_tablee_table1
foreign key (id) references table1(id)
on delete cascade;
Run Code Online (Sandbox Code Playgroud)
外键确保数据完整性。级联约束意味着当主键被删除时,其他表中的相应行也被删除。
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |