• To make sure that you can find the time of truncation you have to adjust the query a bit, as you can't find the time if another action has been performed to the table.

    Changing it to:

    SET NOCOUNT ON;

    DECLARE @ObjectName SYSNAME

    SET @ObjectName = 'dbo.TestTable'

    -- Your schema qualified table name here

    --============== Retrieving the UserName & Time when the table was truncated, based on the TransactionID

    SELECT @ObjectName AS ObjectName

    , [Transaction Name]

    , SUSER_SNAME([Transaction SID]) AS UserName

    , [Begin Time]

    , Operation

    , [Transaction ID]

    FROM fn_dblog(NULL, NULL)

    WHERE [Transaction ID] IN (SELECT [Transaction ID]

    FROM fn_dblog(NULL, NULL)

    WHERE AllocUnitName = @ObjectName)

    AND [Transaction Name] LIKE 'TRUNCATE%'

    AND Operation = 'LOP_BEGIN_XACT'

    allows you to find the truncation, might have to have an order by if there are more than one in the lifetime of the log.