我需要检查从生产数据库中删除了哪些表。我尝试使用视图sys.dm_exec_cached_plans,sys.dm_exec_query_stats,sys.dm_exec_sql_text,但没有找到答案。我使用Microsoft SQL Server Management Studio 2017,SQL 2012。
答案 0 :(得分:1)
您无法从日志中获取删除的表名。获得名称的唯一方法是:
SELECT [Transaction Id] ,[Begin Time] ,SUSER_SNAME ([Transaction SID]) AS [LoginName] FROM fn_dblog (NULL, NULL) WHERE [Transaction Name] = N'DROPOBJ';
SELECT TOP 1 [Lock Information] FROM fn_dblog (NULL, NULL) WHERE [Transaction Id] = 'YOUR_TRANSACTION_ID' AND [Lock Information] LIKE '%SCH_M OBJECT%';
然后还原备份并从sys.objects中检查对象名称