Запрос для поиска таблиц, созданных за последний час - PullRequest
0 голосов
/ 16 мая 2019

Я хочу узнать, какие таблицы были созданы за последний час в базе данных MS SQL Server.Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 16 мая 2019
SELECT
        [name]
       ,create_date
FROM
        sys.tables

WHERE create_date >= DATEADD(HOUR, -1, GETDATE())
0 голосов
/ 16 мая 2019

Вы можете попробовать запросить sys.tables представление catalag, которое наследует столбец create_date из sys.objects представления каталога.

Оператор для текущей базы данных:

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)
0 голосов
/ 16 мая 2019

Вы можете запросить sys.tables.

SELECT
    T.*
FROM
    sys.tables AS T
WHERE
    T.create_date >= DATEADD(HOUR, -1, GETDATE())

Просто выдаст вам результаты подключенной базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...