DELETE FROM 表名称 WHERE 列名称 = 值
创新互联网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为网站设计制作、成都网站建设,成都App定制开发以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。创新互联深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
例子:delete from table where id =2
删除表中id=2的这一行。
1、首先创建一个临时表,用于演示sqlserver语法中delete删除的使用方法
IF OBJECT_ID('tempdb..#tblDelete') IS NOT NULL DROP TABLE #tblDelete;
CREATE TABLE #tblDelete(
Code varchar(50),
Total int
);
2、然后往临时表#tblDelete中插入几行测试,用于演示如何删除数据
insert into #tblDelete(Code, Total) values('Code1', 30);
insert into #tblDelete(Code, Total) values('Code2', 40);
insert into #tblDelete(Code, Total) values('Code3', 50);
insert into #tblDelete(Code, Total) values('Code4', 6);
3、查询临时表#tblDelete中的测试数据select * from #tblDelete;
4、删除临时表#tblDelete中Code栏位=Code3的记录,使用下面的delete语句
delete #tblDelete where Code = 'Code3'
5、再次查询临时表#tblDelete的结果,可以看到Code3的记录没有了
select * from #tblDelete;
6、删除临时表#tblDelete中Code栏位=Code2的记录,使用下面的delete语句。
注意,下面的delete语句后面有一个from关键字,这个关键字是可以省略的,但是建议不要省略
delete from #tblDelete where Code = 'Code2'
7、再次查询临时表#tblDelete的结果,可以看到Code2的记录没有了
select * from #tblDelete;
8、最后,如果想要快速的删除表中的所有数据,有下面两种方式。第二种方式速度更快,delete from #tblDelete;truncate table #tblDelete;完成效果图。
1、delete操作会被完整记录到日志里,它需要大量空间和时间;
2、如果删除中间发生中断,一切删除会回滚(在一个事务里);
3、同时删除多行,记录上的锁也许会被提升为排它表锁,从而阻碍操作完成之前有对这个表的操作(有时候会妨碍正常的业务)所以一般采取分批删除的方法.
所以我们可以通过分批次迁移压缩数据,这样可以大大提升执行速度和执行效率
首先通过set rowcount 来控制每次删除的记录数
执行Sql语句
SET ROWCOUNT 0; 记录每次执行删除的条数
通过TOP的方法,并且使用循环
WHILE 1 = 1
BEGIN
DELETE TOP(5000) FROM dbo.Table WHERE time '2016-12-12';
IF @@rowcount 5000
BREAK;
END