当前位置:首页 » 编程语言 » sql多表删除语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql多表删除语句

发布时间: 2022-07-27 04:44:54

sql多表删除语句 在线等

--1 如何删除type的一条记录
go
create proc procDeleteTypeById
@TID int
as
begin
--先删除最外层子表的关联记录 (pront表)
delete from proct where mstid in(select mstid from mstype where stid in(select stid from stype where tid=@TID))
--在删除mstype表中的关联记录
delete from mstype where stid in(select stid from stype where tid=@TID)
--在删除stype表中关联记录
delete from stype where tid=@TID
--最后删除根表记录
delete from [type] where tid=@Tid
end

--2 删除stype表中记录同上
go
create proc procDeleteStype
@STID int
as
begin
--先删除最外层子表的关联记录 (pront表)
delete from proct where mstid in(select mstid from mstype where stid=
@STID)
--在删除mstype表中的关联记录
delete from mstype where stid=@STID
--最后删除根表中的关联记录
delete from stype where stid=@STID
end

❷ sql 删除语句

1、delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存

语法:DELETE FROM 表名称 WHERE 列名称 = 值,

如:删除student表中姓名为张三丰的学生信息-delete from studentwhere name=‘张三丰’;

2、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。

drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。

3、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。

注意:truncate 不能删除行数据,要删就要把表清空。

(2)sql多表删除语句扩展阅读:

数据库操作中,经常要用到删除表和删除表数据,在实际应用中,三者的区别是明确的。

当你不再需要该表时, 用 drop;

当你仍要保留该表,但要删除所有记录时, 用 truncate;

当你要删除部分记录时(always with a WHERE clause), 用 delete。

truncate 与delete 比较:

1、truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。

2、truncate 比 delete速度快,且使用的系统和事务日志资源少。

3、truncate 操作后的表比Delete操作后的表要快得多。

❸ 怎样用sql语句删除整个表及数据库

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

❹ sql语句多表删除问题

原则上,同意youyuan1688和ytbelwxg的方法. 5个表,如果每个表都和lm_company表的comid字段有直接主外键关系.那么ytbelwxg的方法是最佳方案; 仔细看了你的连接条件,猜想,并不是每个表都和lm_company表的comid字段有直接主外键关系.所以通过主外键级联删除的方案就不可行,那么就必须逐个表来删除,而且删除的顺序也有讲究,先删子表,再删主表. 本例中,删除的顺序应该是e,d,c,b,a; --1.删除e; sql1="delete from lm_newsinfo from lm_newsinfo as e, lm_company as a where a.comid=e.news_comid and a.comid=" + lblid.Text +";" --2.删除d; sql2="delete from lm_message from lm_company as a ,lm_Yuzhan as b ,lm_Bookinfo as c ,lm_message as d where a.comid=b.yuzhan_comid and b.yuzhan_id=c.Bkinfo_yuzhanid and c.Bkinfo_id=d.message_bookid and a.comid=" + lblid.Text +";" --删除c; sql3="delete from lm_Bookinfo from lm_company as a ,lm_Yuzhan as b ,lm_Bookinfo as c where a.comid=b.yuzhan_comid and b.yuzhan_id=c.Bkinfo_yuzhanid and a.comid=" + lblid.Text + ";" --删除b; sql4="delete from lm_Yuzhan where yuzhan_comid=" + lblid.Text + ";" --删除a; sql5="delete from lm_company where comid=" + lblid.Text + ";" --合并sql1,sql2,sql3,sql4,sql5 sql=sql1+sql2+sql3+sql4+sql5 --在你的客户端执行sql命令串即可

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

具体操作步骤如下:

1、首先,打开SQL
Server ,连接到数据库,如下图所示,然后进入下一步。

❻ 高手!如何一条SQL语句删除多张表中记录

最好不要使用这种方式,包括级联删除,触发器但不限于数据库的自动处理功能,这样的后果就是数据在后台自动被改动,在我看来,数据的不可控情况是极度糟糕的问题,而且这样的情况是程序代码编写混乱造成的严重后果,我认为,数据库就只是拿来存放数据的,所有的逻辑都应该跟数据库无关,数据库的理想状态应该是所有数据都是独立的,所有的逻辑都应该是外部情况。

❼ 关于sql语句删除多表中的数据

首先,只能批量删除某个表里某个日期的所有数据.
其次这个表里必须有这个时间字段.比如表a,时间字段为b
具体sql语句为
delete
from
a
where
datediff(dd,'20080301',b)>0

❽ 如何使用一条sql语句删除多张表中的数据

在源表中使用触发器,把这些相应表都一并删除。
或是设置主外键,使之级联删除。

❾ SQL批量删除表语句

如果用sql中的delete语句,delete语句一次只能删除一张表。批量删除多张表只能写多条delete语句,或者用楼上的方法;

❿ 如何使用一条sql语句删除多张表中的数据

delete t三 where t三.B列 in ( select B列 from t二 inner join t一 on t二.A列=t一.A列 ); delete t二 where t二.A列 in ( select A列 from t一 ) 说明两sql语句间加号执行点击sql server 菜单新建查询弹新窗口运行述语句普通sql语句删除两表做与sql server 内机制