删除帐单记录

时间:2018-07-05 08:03:13

标签: sql-server

我需要检查从生产数据库中删除了哪些表。我尝试使用视图sys.dm_exec_cached_plans,sys.dm_exec_query_stats,sys.dm_exec_sql_text,但没有找到答案。我使用Microsoft SQL Server Management Studio 2017,SQL 2012。

1 个答案:

答案 0 :(得分:1)

您无法从日志中获取删除的表名。获得名称的唯一方法是:

  1. 从fn_dblog获取交易ID
SELECT 
  [Transaction Id]
  ,[Begin Time]
  ,SUSER_SNAME ([Transaction SID]) AS [LoginName] 
FROM fn_dblog (NULL, NULL)  
WHERE [Transaction Name] = N'DROPOBJ';
  1. 获取object_id:
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中检查对象名称