我在SQL数据库中有一个表要删除数据吗?我想保留专栏。
e.g。我的表有3列,名称,年龄,日期。我不想删除这些,我只想删除数据。
我应该截断,删除还是删除?
答案 0 :(得分:2)
不要丢弃 - 它会删除数据和定义 如果删除 - 数据消失,自动增量值从最后一个值开始 如果你截断 - 那就像你刚刚创建了表格一样。没有数据和所有计数器重置
答案 1 :(得分:2)
截断非常快 - 就像快速格式化表格一样。删除时不需要任何额外空间。你不能回滚他的操作。您无法指定条件。这是从表中删除所有数据的最佳选择。
删除要慢得多,并且您需要额外的空间来执行此操作,因为您必须能够回滚数据。如果需要删除所有数据,请使用truncate。如果需要指定条件,请使用delete。
删除表 - 您可以通过删除和删除数据来删除表中的数据,就像截断它一样,但速度较慢,您可能会遇到其他一些问题,例如外键依赖项。我绝对不推荐这种操作。
答案 2 :(得分:0)
delete from TableName
应该做的伎俩
DROPping table也会删除列。
答案 3 :(得分:0)
删除: DELETE语句用于从表中删除行。
截断: SQL TRUNCATE命令用于删除表中的所有行,并释放包含该表的空格。
* 删除 : * SQL DROP命令用于从数据库中删除对象。如果删除表,则会删除表中的所有行,并从数据库中删除表结构
答案 4 :(得分:0)
截断表格。在你的情况下,这将是一个很好的选择
答案 5 :(得分:0)
我们可以在删除,截断和删除条件下回滚数据。下降。 但必须在执行查询之前使用Begin Transaction,删除,删除&截断。
以下是示例:
Create Database Ankit
Create Table Tbl_Ankit(Name varchar(11))
insert into tbl_ankit(name) values('ankit');
insert into tbl_ankit(name) values('ankur');
insert into tbl_ankit(name) values('arti');
Select * From Tbl_Ankit
/*======================For Delete==================*/
Begin Transaction
Delete From Tbl_Ankit where Name='ankit'
Rollback
Select * From Tbl_Ankit
/*======================For Truncate==================*/
Begin Transaction
Truncate Table Tbl_Ankit
Rollback
Select * From Tbl_Ankit
/*======================For Drop==================*/
Begin Transaction
Drop Table Tbl_Ankit
Rollback
Select * From Tbl_Ankit