如何查找从表中删除记录的人员

时间:2017-03-27 10:13:30

标签: sql-server sql-server-2008

我查了一下,在查询下面删除并执行了一张表的记录,以查找删除了少量记录的人:

SELECT
 [Current LSN],
 [Operation],
 [Transaction ID],
  [Description], SPID,[Begin Time], [Transaction SID],
  name 'LoginName'
 FROM fn_dblog (NULL, NULL),
   (select sid,name from sys.syslogins) sl
where [Transaction Name] LIKE '%delete%' and [Transaction SID] = sl.sid

  **even I tried this below:**


   DECLARE @TableName sysname
   SET @TableName = 'dbo.table1'
   SELECT
u.[name] AS UserName
, l.[Begin Time] AS TransactionStartTime
FROM
fn_dblog(NULL, NULL) l
 INNER JOIN
(
SELECT
    [Transaction ID]
FROM 
    fn_dblog(NULL, NULL) 
WHERE
    AllocUnitName LIKE @TableName + '%'
AND
    Operation = 'LOP_DELETE_ROWS'
) deletes
    ON  deletes.[Transaction ID] = l.[Transaction ID]
    INNER JOIN
    sysusers u
    ON  u.[sid] = l.[Transaction SID]

然而,这并没有返回任何结果。难道我做错了什么?我在SQL Server 2008中需要做什么额外的设置来查看日志吗?谁做了什么?

0 个答案:

没有答案