Files
chill_notes/实践积累/数据库/批量删除超前数据脚本(监测云).md
2026-04-21 17:41:25 +08:00

1.6 KiB
Executable File

--声明一个变量

declare @tbname as nvarchar(100);

--声明一个游标用来遍历查询到的结果

declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%2020_SRC'

--打开游标

open C_userID;

--获取游标指向的数据

fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0

BEGIN --执行具体的操作 --删除未来的数据 --DELETE --FROM [HiMonitorDB].[dbo].[11350069_STC] --WHERE aDatetime >'2020-02-03'

--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名) EXEC('delete from [safeMonitorSrc].[dbo].['+@tbname+'] where CollectTime>GETDATE()') --游标指向下一条数据

FETCH next from C_userID into @tbname;

END --关闭游标 CLose C_userID --释放游标 DEALLOCATE C_userID;

begin tran COMMIT --声明一个变量

declare @tbname as nvarchar(100);

--声明一个游标用来遍历查询到的结果

declare C_userID CURSOR for
select distinct TABLE_NAME from information_schema.COLUMNS
where TABLE_NAME like '%2020_APP'

--打开游标

open C_userID;

--获取游标指向的数据

fetch next from C_userID into @tbname;
while @@FETCH_STATUS = 0

BEGIN --执行具体的操作 --删除未来的数据 --DELETE --FROM [HiMonitorDB].[dbo].[11350069_STC] --WHERE aDatetime >'2020-02-03'

--create NONCLUSTERED INDEX 索引名称 ON 表名(字段名) EXEC('delete from [safeMonitorAPP].[dbo].['+@tbname+'] where CollectTime>GETDATE()') --游标指向下一条数据

FETCH next from C_userID into @tbname;

END --关闭游标 CLose C_userID --释放游标 DEALLOCATE C_userID;