SQL删除数据(分段实现大量数据的删除操作)
2010-07-30 19:44
288 查看
1。当删除的数据量比较少时(万条数据以下):使用普通的数据删除方法即可,delete from .....
2。当数据量很大时,如果使用一般的删除办法将会出现很多的问题,比如服务器超时、ODBC错误等等;此时我们需要改变删除的方法,可以使用分段的形式进行数据删除,而不是一下子全部删除。
SET rowcount 5000
delete from collectiontext where
cltextid not in
(
select min(cltextid)
from collectiontext group by urladdr
)
while @@rowcount>0
begin
delete from collectiontext where
cltextid not in
(
select min(cltextid)
from collectiontext group by urladdr
)
end
set rowcount 0
也可以写成:
DECLARE @COUNT AS BIGINT;
SET @COUNT=1;
WHILE(@COUNT>0)
BEGIN
SET rowcount 3000
delete from collectiontext where cltextid not in
(
select min(cltextid) from collectiontext group by urladdr
)
SET @COUNT=@@ROWCOUNT;
--SET @COUNT=@COUNT-1;
END
--重置rowcount=0
set rowcount 0
3、使用TRUNCATE TABLE 清空数据,清空之间用临时表保存要留下的数据记录,然后再放回表中。
但是TRUNCATE处理的表不能和其他表有外键引用的关系,否则不能实现。
最后,实现不行的话,还可以利用数据库管理工具自带的数据导出功能将符合要求的数据先导出到某个文件,然后将整个表删除再新建一个一样结构的表,最后将刚才导出的数据导入到新建的表中。
2。当数据量很大时,如果使用一般的删除办法将会出现很多的问题,比如服务器超时、ODBC错误等等;此时我们需要改变删除的方法,可以使用分段的形式进行数据删除,而不是一下子全部删除。
SET rowcount 5000
delete from collectiontext where
cltextid not in
(
select min(cltextid)
from collectiontext group by urladdr
)
while @@rowcount>0
begin
delete from collectiontext where
cltextid not in
(
select min(cltextid)
from collectiontext group by urladdr
)
end
set rowcount 0
也可以写成:
DECLARE @COUNT AS BIGINT;
SET @COUNT=1;
WHILE(@COUNT>0)
BEGIN
SET rowcount 3000
delete from collectiontext where cltextid not in
(
select min(cltextid) from collectiontext group by urladdr
)
SET @COUNT=@@ROWCOUNT;
--SET @COUNT=@COUNT-1;
END
--重置rowcount=0
set rowcount 0
3、使用TRUNCATE TABLE 清空数据,清空之间用临时表保存要留下的数据记录,然后再放回表中。
但是TRUNCATE处理的表不能和其他表有外键引用的关系,否则不能实现。
最后,实现不行的话,还可以利用数据库管理工具自带的数据导出功能将符合要求的数据先导出到某个文件,然后将整个表删除再新建一个一样结构的表,最后将刚才导出的数据导入到新建的表中。
相关文章推荐
- 【MS SQL Server】SQL删除数据(分段实现大量数据的删除操作)
- SQL分段处理删除大量数据
- 项目经验之:利用Jquery+HTML静态模版实现数据的展示及无刷新增加,修改,删除,分页操作!!!
- 稳扎稳打Silverlight(57) - 4.0通信之WCF RIA Services: 概述, 通过 DomainDataSource 实现数据的添加、查询、更新和删除操作
- SQL实现删除数据,并把删除的数据直接插入到历史表中。
- 【数据结构】单链表的倒序、删除相同结点、按值排序等简单操作用java实现
- SQL本地分布式操作远程数据库,可用于实现导入,导出等数据操作功能
- 稳扎稳打Silverlight(57) - 4.0通信之WCF RIA Services: 概述, 通过 DomainDataSource 实现数据的添加、查询、更新和删除操作
- 利用Jquery+HTML静态模版实现数据的展示及无刷新增加,修改,删除,分页操作!
- java线程池的使用,实现大量数据的更新操作
- Silverlight 3中如何创建Linq to SQL项目实现MS-SQL数据的操作
- JS小功能(操作Table--动态添加删除表格及数据)实现代码
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
- php使用PDO事务配合表格读取大量数据插入操作实现方法
- 在ASP.NET 2.0中操作数据之六十三:GridView实现批量删除数据
- 稳扎稳打Silverlight(57) - 4.0通信之WCF RIA Services: 概述, 通过 DomainDataSource 实现数据的添加、查询、更新和删除操作
- 稳扎稳打Silverlight(57) - 4.0通信之WCF RIA Services: 概述, 通过 DomainDataSource 实现数据的添加、查询、更新和删除操作
- JAVA对数据库进行操作,实现数据库中数据的插入,查询,更改,删除操作
- 头结点链表的添加结点,删除结点,链表逆序,删除指定数据等操作的实现
- PHP实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法