【发布时间】:2016-10-11 10:18:36
【问题描述】:
有什么方法可以使用 T-SQL 编写以下想法:
我有一个脚本的开始,它识别数据库中当前的表,以及它们各自的行数,如下所示:
SELECT o.name AS 'TableName' ,i.rows AS 'Records'
FROM sys.tables as o LEFT JOIN sys.sysindexes as i
ON i.id = o.object_id
WHERE o.type IN ('U')
AND i.indid in (0,1)
但是我想设置一些东西,我可以标记出现在数据库中的任何新表(有点像昨天和今天) - 还有最近被删除的任何表。几乎充当“表日志历史记录”。
所以最终输出将是所有当前表 + 新表 + 已删除(从昨天开始)的列表。
提前干杯。
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(20 多年前),不鼓励使用它 -
另外:从 SQL Server 2005 开始,您应该停止使用
sysobjects视图 - 使用sys中的焦点目录视图架构 - 像sys.tables或sys.types -
您是否要求以与您相同格式的已删除表计数
-
谢谢,更改了联接并按照建议重定向到更合适的表。
标签: sql-server database ssms database-administration