创建12
发布: (2025年12月4日 GMT+8 05:48)
2 min read
原文: Dev.to
Source: Dev.to
单次执行脚本
以下 T‑SQL 脚本可在 DBVisualizer、isql 或任何其他工具中运行。
它返回最近 45 天内每个包含 INTERNTIMESTAMP 列的用户表中新增的行数。
脚本
/* -------------------------------------------------------------
ONE SINGLE EXECUTION – works in DBVisualizer / isql / any tool
Shows rows from last 45 days for every table that has INTERNTIMESTAMP
------------------------------------------------------------- */
declare @sql nvarchar(8000) -- use nvarchar if your ASE supports it (15.7+)
-- or varchar(8000) on very old versions
select @sql = ''
/* Build the big UNION ALL query */
select @sql = @sql +
'select ''' + o.name + ''' as table_name, count(*) as rows_last_45_days from ' + o.name +
' where INTERNTIMESTAMP >= dateadd(day, -45, getdate()) union all '
from sysobjects o
where o.type = 'U'
and exists (select 1 from syscolumns c
where c.id = o.id and c.name = 'INTERNTIMESTAMP')
order by o.name
/* Safely remove the trailing '' union all '' – no negative length */
if len(@sql) > 11
select @sql = left(@sql, len(@sql) - 11) -- removes last 11 chars
else
select @sql = 'select ''No tables found'' as table_name, 0 as rows_last_45_days'
/* Execute it */
exec(@sql)
go