sql的delete怎么样同时删除多个表中的记录?

发布于2022-01-13 13:56:06
8个回答
admin
网友回答2022-01-13
1、delete from t1 where 条件
2、delete t1 from t1 where 条件
3、delete t1 from t1,t2 where 条件
4、delete t1,t2 from t1,t2 where 条件
前3者是可行的,第4者不可行。
也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联删除关系,则可以实现删除一个表的数据时,同时删除另一个表中相关的数据。
admin
网友回答2022-01-13
delete t3 where t3.B列 in
(
select B列
from t2
inner join t1 on t2.A列=t1.A列
);
delete t2
where t2.A列 in
(
select A列
from t1
)

说明两个sql语句中间加个分号,可一次执行。你可点击sql server 菜单下方的“新建查询”,在弹出的新窗口中运行上述语句。一个普通的sql语句删除两个表做不到。这与sql server 的内在机制有关。
admin
网友回答2022-01-13
如下: CREATE TRIGGER del_kh ON dbo.卡信息表 AFTER DELETE AS insert into 作废卡信息表(kh,xm,xb,kmc,sjhm,sysycs,fxrq,dqrq) select kh,xm,xb,kmc,sjhm,sysycs,fxrq,dqrq from deleted ==== 触发器激活时,会把删除的记录放在deleted临时表里~ 这个表只能读取,结构是直接负责进行删除操作的表的~ 所以直接把这个数据导出到您需要的表里就可以了!
admin
网友回答2022-01-13
我搞了很久的oracle,第一次知道delete可以这么写。我觉得可能是主外键关联的关系,所以要删除oracle_items表。
admin
网友回答2022-01-13
只能在SQL中使用异常捕获,其他办法好像不行。
admin
网友回答2022-01-13
delete from 表名。不加任何条件就是删除所有。drop是删除表
admin
网友回答2022-01-13
delete 只能删除一张表吧
admin
网友回答2022-01-13
sql 2005/08 可以用 row_number 处理-- 测试表DECLARE @tb_test TABLE( col1 int, col2 int);INSERT @tb_testSELECT 1, 1 UNION ALLSELECT 1, 1 UNION ALLSELECT 1, 2 UNION ALLSELECT 1, 2;-- 删除处理WITHDATA AS( SELECT rid = ROW_NUMBER() OVER(PARTITION BY col1, col2 ORDER BY col1, col2), * FROM @tb_test)DELETE FROM DATAWHERE rid 1;-- 显示处理结果SELECT * FROM @tb_test;

回到
顶部