游标删除多个表里脏数据的方法

第一种方法:

复制代码 代码如下:

CREATE proc [dbo].[delAllRecord]
as
declare @tableName nvarchar(255)
declare @Sql nvarchar(255)

Declare curTable Cursor
        for select Table_Name from information_schema.tables where TABLE_TYPE='BASE TABLE'
Open curTable
Fetch Next From curTable Into @tableName

WHILE(@@FETCH_STATUS = 0)
        BEGIN
                set @Sql = N'delete from '+@tableName
                exec sp_executesql @sql
                Fetch Next From curTable Into @tableName
        end
CLOSE curTable
DEALLOCATE curTable

第二种方法:

复制代码 代码如下:

--declare test_cursor cursor scroll for

--select id,table_name from dbo.section_type

--open test_cursor

--declare @id int

--declare @table_name nvarchar(50)

--while @@fetch_status=0

--begin

--fetch next from test_cursor into @id,@table_name

--print @id

--print @table_name

--end

--close test_cursor

--deallocate test_cursor

--删除projectrangtree的脏数据

delete from projectrangtree where deleteversion>0

delete from projectrangtree where type=3 and parentid not in(select id from projectrangtree where type=2)

delete from projectrangtree where type=4 and parentid not in(select id from projectrangtree where type=3)

delete from projectrangtree where type=5 and parentid not in(select id from projectrangtree where type=4)

--删除section_settings的脏数据

delete from section_settings where parent_prj_tree_id not in(select id from projectrangtree)

--删除各个表里的测点

declare @table_name varchar(50)

declare @sql nvarchar(500)--此处要注意,声明的长度一定要够

--declare @measuring_point_id nvarchar(500)

declare del_cursor cursor scroll for

select table_name from section_type

open del_cursor

fetch next from del_cursor into @table_name

--print @table_name

while (@@fetch_status=0)

begin

--print quotename(@table_name)

--set @measuring_point_id='select measuring_point_id from '+quotename(@table_name)

--exec sp_executesql @measuring_point_id

set @sql = 'delete from '+ quotename(@table_name) +' where measuring_point_id not in(select id from measuring_point_setting)'

exec sp_executesql @sql

--delete from @table_name where measuring_point_id not in (select id from measuring_point_setting)

fetch next from del_cursor into @table_name

end

close del_cursor

deallocate del_cursor

--delete from (select talbe_name from section_type) where measuring_point_id not in (select id from measuring_point_setting)

时间: 2024-09-24 16:46:48

游标删除多个表里脏数据的方法的相关文章

游标删除多个表里脏数据的方法_MsSql

第一种方法: 复制代码 代码如下: CREATE proc [dbo].[delAllRecord]asdeclare @tableName nvarchar(255)declare @Sql nvarchar(255) Declare curTable Cursor        for select Table_Name from information_schema.tables where TABLE_TYPE='BASE TABLE'Open curTableFetch Next Fr

asp 同时删除2个表里的数据

asp 同时删除2个表里的数据要同时删除两张表的数据有二种方法,条件要根据不同的数据库来定义,   先讲讲mssql数据库吧,可以这样写,"delete..... where id=" & id & ";delete...... where id=" & id; 还有一种就是比较笨的方法喽,一条一条的删除.   另一种就是access数据库了,这种只有一种方法就是一条一条的删除 .  

PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)_php技巧

本文实例讲述了PHP查询并删除数据库多列重复数据的方法.分享给大家供大家参考,具体如下: <?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db("test_db", $con); if (!$db

最简单删除SQL Server中所有数据的方法

其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录. 说道删除数据记录,

OS X系统下彻底删除硬盘文件数据的方法,恢复软件也无法复原

  曾艳照门搞得人们对数据安全都很紧张,就算删除+清空回收站,文件和数据依然可以被恢复.因为数据仍在硬盘上,只是被打上了标记:"嘿,操作系统,这个地方 有数据,但你可以写新的文件覆盖它".数据恢复软件就钻了这个孔子---无视那个标记,直接读出已被删除的文件.下面介绍一个Mac OS X操作系统下,彻底删除苹果电脑硬盘文件数据的方法,恢复软件也无法复原. 进入"Finder--应用程序--实用工具--磁盘工具",选中你要"彻底"抹掉的磁盘分区 然后

除了Synchronized,还有哪几种解决线程脏数据的高效率方法?

问题描述 脏数据:线程不同步引起的数据异常,例子:在一个聊天室中,A和B恰好同时在聊天室发言,A和B发言在后台需要同时执行发言部门的函数,这时候有可能引发A发了B想要说的话,而B发了A想要说的话.要想解决"脏数据"的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下:publicsynchronizedvoidrun(){}总结了synchronized的特点,如下:1.synchronized关键字不能继承.虽然可以使用synchronized来定义

MSSQL 删除数据库里某个用户所有表里的数据_MsSql

-->Title:删除数据库里某个用户所有表里的数据 -->Author:wufeng4552 -->Date :2009-09-21 15:08:41 --方法1 复制代码 代码如下: declare @uname varchar(20) declare cuser cursor for select so.name from sysobjects so,sysusers su where so.uid=su.uid and su.name='Stone' and so.xtype='

MSSQL 删除数据库里某个用户所有表里的数据

-->Title:删除数据库里某个用户所有表里的数据 -->Author:wufeng4552 -->Date :2009-09-21 15:08:41 --方法1 复制代码 代码如下: declare @uname varchar(20) declare cuser cursor for select so.name from sysobjects so,sysusers su where so.uid=su.uid and su.name='Stone' and so.xtype='

【机器学习调查】脏数据最棘手,逻辑回归最常用

数据科学社区Kaggle的最新调查显示,机器学习和数据科学研究者在被问到工作中面临的最大障碍时,最常见的回答是"脏数据",其次是缺乏该领域的人才.此外,他们最常用的方法是"逻辑回归",而神经网络只排在第4位. 想象一下机器学习研究者的生活,你可能会觉得很令人向往.你会给自动驾驶汽车编程,在科技界的巨头公司工作,而你编写的软件甚至可能导致人类的灭亡.太酷了!但是,正如最近一项针对数据科学家和机器学习研究者的调查所显示的,这些期待需要调整,因为这些职业面临的最大的挑战是