查询以查找最近一小时创建的表

时间:2019-05-16 09:15:50

标签: sql sql-server database

我想找出最近一个小时在MS SQL Server数据库中创建了哪些表。我该怎么办?

3 个答案:

答案 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)