我想找出最近一个小时在MS SQL Server数据库中创建了哪些表。我该怎么办?
答案 0 :(得分:0)
您可以查询sys.tables
。
SELECT
T.*
FROM
sys.tables AS T
WHERE
T.create_date >= DATEADD(HOUR, -1, GETDATE())
只会为您提供当前连接的数据库的结果。
答案 1 :(得分:0)
SELECT
[name]
,create_date
FROM
sys.tables
WHERE create_date >= DATEADD(HOUR, -1, GETDATE())
答案 2 :(得分:0)
您可以尝试查询sys.tables的目录视图,该视图从sys.objects目录视图继承列create_date
。
当前数据库的声明:
SELECT *
FROM sys.tables
WHERE DATEDIFF(hour, create_date, GETDATE()) < 1
如果需要获取所有数据库的此信息,请生成并执行动态语句:
DECLARE @stm nvarchar(max)
SET @stm = N''
SELECT @stm =
@stm + CONCAT(
N'UNION ALL SELECT ''',
[name] ,
''' AS DatabaseName, [name] AS TableName FROM ',
QUOTENAME([name]),
N'.sys.tables WHERE DATEDIFF(hour, create_date, GETDATE()) < 1 '
)
FROM sys.databases
SET @stm = STUFF(@stm, 1, 10, N'')
EXEC (@stm)