SQLServer删除数据

使用SSMS删除数据

1、连接数据库、选择数据表-》右键点击,选择所有行(或者选择前200行)。

2、在数据窗口中选择数据行(注意点击最左边列选择整个数据行)-》在最左侧右键点击-》选择删除-》在弹出框中点击确定。

3、示例结果如下:

使用T-SQL脚本删除数据

删除单表单行数据

语法:delete from 数据库名.dbo.表名 where 条件;

示例:delete from testss.dbo.test1 where id='12';

删除单表多行数据

语法:delete from 数据库名.dbo.表名 where 条件或者delete top(n) from 数据库名.dbo.表名 where 条件;

示例:

delete from testss.dbo.test1 where id>='14' and id<='15';

delete from testss.dbo.test1 where id between '16' and '17';

delete from testss.dbo.test1 where id in ('18','19');

delete top(2) from testss.dbo.test1 where id>='20';

 

删除单表中重复数据

语法:delete a from 表 as a left join 表 as b on a.列=b.列 where a.列>b.列;

示例:delete a from test1 as a left join test1 as b on a.name=b.name where a.id>b.id; 

 

删除表中所有数据

语法:delete from 数据库名.dbo.表名;

示例:delete from testss.dbo.test1; 

 清空表中所有数据

语法:truncate table 数据库名.dbo.表名;

示例:truncate table testss.dbo.test1;

truncate和delete总结

效率:truncate比delete速度快且使用的系统和事务日志资源少。
应用范围:truncate只能对table,delete可以是table和view。
日志操作:delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项,所以可以对delete操作进行roll back
两者差异:

1、truncate在各种表上无论是大的还是小的都非常快,如果有rollback命令delete将被撤销,而truncate则不会被撤销。
2、truncate是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对truncate使用rollback命令。
3、truncate将重新设置高水平线和所有的索引,在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比delete操作后的表要快得多。
4、truncate不能触发任何delete触发器。
5、当表被truncate清空后表和表的索引讲重新设置成初始大小,而delete则不能。
6、不能清空父表。

总结

delete不需要列名和通配符,它是删除整行而不是删除列,要删除指定的列,请使用update语句,并且delete语句从表中删除行,甚至是删除表中所有行,而不是删除表本身。删除数据有风险,删除之前应该先备份。

转载于:https://www.cnblogs.com/vuenote/p/9490086.html

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值