• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    游标删除多个表里脏数据的方法

    第一种方法:

    复制代码 代码如下:

    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)

    您可能感兴趣的文章:
    • SQL Server游标的使用/关闭/释放/优化小结
    • SQL Server遍历表中记录的2种方法(使用表变量和游标)
    • sqlserver中触发器+游标操作实现
    • 教你怎么使用sql游标实例分享
    • SQL server使用自定义函数以及游标
    • sql 游标使用笔记
    • SQL Server的通用分页存储过程 未使用游标,速度更快!
    • sqlserver 函数、存储过程、游标与事务模板
    • MSSQL 游标使用 心得
    • sqlserver 游标的简单示例
    • SQL Server 游标语句 声明/打开/循环实例
    上一篇:SQL直接操作excel表(查询/导入/插入)
    下一篇:SQL重复记录查询的几种方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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