Sql删除

DROP TABLE 语句从数据库中删除一个或多个表。
DROP TABLE [IF EXISTS] [database_name.][schema_name.]table_name;
在上面语法中, 首先, database_name 指定要删除的表的名称。
其次,指定创建表的数据库的名称以及表所属的模式的名称。数据库名称是可选的。 如果不指 定, DROP TABLE 语句将删除当前数据库中的表。
第三,使用 IF EXISTS 子句仅在表存在时才删除表。 自SQL Server 2016 13.x起,支持 IF EXISTS 子句。 如果删除不存在的表,则会出现错误。 如果表已经存在,则 IF EXISTS 子句有条 件地删除该表。
当SQL Server删除表时,它还会删除该表的所有数据,触发器,约束和权限。 此外,SQL Server不会显 式删除引用已删除表的视图和存储过程。 要显式删除这些对象,必须使用 DROP VIEW 和 DROP PROCEDURE 语句。 SQL Server允许使用单个 DROP TABLE 语句来一次删除多个表,如下所示:
DROP TABLE [database_name.][schema_name.]table_name_1, [database_name.][schema_name.]table_name_2, …
[database_name.][schema_name.]table_name_n;
SQL Server截断表
TRUNCATE TABLE 类似于没有 WHERE 子句的 DELETE 语句。 但是, TRUNCATE 语句执行得更快,并且使 用的系统和事务日志资源更少。
TRUNCATE TABLE与DELETE比较
与 DELETE 语句相比, TRUNCATE TABLE 具有以下优点:

  1. 使用较少的事务日志 DELETE 语句一次删除一行,并在事务日志中为每个删除的行插入一个条目。 另一方面, TRUNCATE TABLE 语句通过释放用于存储表数据的数据页来删除数据,并仅在事务日志中插 入页面解除分配。
  2. 使用更少的锁 使用行锁执行 DELETE 语句时,表中的每一行都被锁定以便删除。 TRUNCATE TABLE 锁定表和页,而不 是每一行。
  3. 标识重置 如果要截断的表具有标识列,则当使用 TRUNCATE TABLE 语句删除数据后,具有标识列的计数器将重置 为开始的值(一般是: 1 )。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值