清除数据库中大于10W行的垃圾历史数据

-- =============================================
-- Author: <Author,Name,龙鸿轩>
-- Create date: <Create Date,2016-01-30>
-- Description: <Description,清除数据库中大于10W行的垃圾历史数据>
-- =============================================
IF object_id(‘tempdb..#temp‘) is not null
DROP TABLE #temp
CREATE TABLE #temp (TableName VARCHAR (255), RowCnt INT)
EXEC sp_MSforeachtable ‘INSERT INTO #temp SELECT ‘‘?‘‘, COUNT(*) FROM ? having COUNT(*)>100000‘
SELECT TableName, RowCnt FROM #temp ORDER BY RowCnt desc

DECLARE @s nvarchar(1000)
DECLARE @table nvarchar(50)
DECLARE Basura_Cursor CURSOR FOR
SELECT replace(replace(TableName,‘[dbo].[‘,‘‘ ) ,‘]‘,‘‘) FROM #temp
OPEN Basura_Cursor;
FETCH NEXT FROM Basura_Cursor into @table;

SET @s =‘truncate table ‘ [email protected] +‘ ‘
EXECUTE(@s)

WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Basura_Cursor into @table;
set @s =‘truncate table ‘ [email protected] +‘ ‘
EXECUTE(@s)
END;
CLOSE Basura_Cursor;
DEALLOCATE Basura_Cursor;
GO

时间: 2024-12-14 12:18:07

清除数据库中大于10W行的垃圾历史数据的相关文章

SQL 清除数据库中所有表的数据

进行数据库的操作,有时候我们需要清除数据库中所有的数据,如果你不嫌麻烦,可以一次一次的执行truncate操作,但是如果遇到有无数个表的情况,这种操作无疑是很耗时的 我曾经百度别人的代码,看都没看就直接复制粘贴执行,结果,全部drop掉了,并且没有备份数据库,一首凉凉送给自己,所以,在此警告各位朋友,一定要看清了代码再执行,一定一定要随时做好数据备份,不然,你懂的 下面附上我的代码(也是百度的) declare c cursor for select NAME from sysobjects w

查询数据库中第n行数据

一般情况下分页的时候是需要的关键字.MySQL中是limit关键字,MSSQL中是top关键字,Oracle中则是rownum. 伪列是指那些可以像表中的列一样用在SELECT中但不作为用户数据在表中存储的特殊标识, 它们可以被选择(使用SELECT),但不能被删除(DELETE)和更新(UPDATE).ROWNUM的本质是一个伪列,它的作用是对结果集加的一个伪列(即先查到结果集之后再加上去的一个列)简单的说rownum是对符合条件结果集添加的序列号.它总是从1开始排起的,所以选出的结果中不可能

sql server 清除数据库中所有表的数据

CREATE PROCEDURE sp_DeleteAllData AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'--禁用约束 EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'--禁用触发器 EXEC sp_MSForEachTable 'DELETE FROM ?'--清数据 EXEC sp_MSForEachTable 'ALTER TABLE

java 将数据库中的每一条数据取出放入数组或者List中

1.如何将数据库中数据按照行(即一整条数据)取出来,存入到数组当中? public static String str = null; // 将StringBuffer转化成字符串 public static StringBuffer sb = new StringBuffer(); // StringBuffer便于字符串的增删改查操作 public static void main(String[] args) { String className = "net.sourceforge.jt

计算数据库中各个表的数据量和每行记录所占用空间--添加架构信息-读后感及知识整理

参考文章: SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 监控SQLServer 数据库表每天的空间变化情况 仔细拜读上面三位的文章,不会的知识点又参考了MSDN,巩固了知识点如下: 知识点: 1.表的架构信息,涉及的系统对象 sys.schemas 和 INFORMATION_SCHEMA.TABLES,但后者不是官方推荐方式,

集合差集 哈希表 比较数据库中的图片和服务器上的图片,将服务器上的垃圾图片删除

SSH 框架下code: public String deleRubbishAd(){ int deleADcount = 0; rubbishADtp = configDao.rubbishADtp(); //数据库中的广告图片集合 Map<Object,Object> shujuku= new HashMap<Object,Object>(); File adfile = new File("C://Program Files//Apache Software Fou

mysql查看数据库中所有表的行数,并进行排序

mysql查看数据库中所有表的行数,并进行排序: 进行数据库迁移或还原后,可以通过比较行数,检查数据是否正确. mysql> use information_schema; mysql> select table_name,table_rows from tables where TABLE_SCHEMA= 'kpsumi' order by table_rows desc; 原文地址:http://blog.51cto.com/9285090/2119096

数据库中的行锁和表锁

一.事务并发调度的问题 脏读:A事务读取B事务尚未提交的更改数据,并在这个数据基础上操作.如果B事务回滚,那么A事务读到的数据根本不是合法的,称为脏读.在oracle中,由于有version控制,不会出现脏读. 不可重复读:A事务读取了B事务已经提交的更改(或删除)数据.比如A事务第一次读取数据,然后B事务更改该数据并提交,A事务再次读取数据,两次读取的数据不一样. 幻读:A事务读取了B事务已经提交的新增数据.注意和不可重复读的区别,这里是新增,不可重复读是更改(或删除).这两种情况对策是不一样

SqlSever基础 insert 给一个数据库中的表中的一个列一次性添加多行数据

1 code 1 --select * from sysdatabases 2 3 --指定数据库 4 use helloworld 5 --查看该数据库中的Teacher表格列有哪几个 6 select * from Teacher 7 -- 向 teacher表格中的ShengHao一次加入两行数据 8 insert into Teacher(ShengHao) 9 values('女娲娘娘'), 10 ('无盐娘娘') 11 2 show