当前位置:   article > 正文

Sql删除

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 )。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/440736
推荐阅读
相关标签
  

闽ICP备14008679号