Câu trả lời:
Bạn sẽ không thể tìm thấy thông tin này sau khi thực tế. Bạn sẽ cần thêm trình kích hoạt và bảng ghi nhật ký (hoặc thiết lập dấu vết phía máy chủ đắt tiền hoặc thêm ghi nhật ký thủ công vào phương thức truy cập dữ liệu của bạn).
Dưới đây là một ví dụ rất nhanh về cách thực hiện bảng ghi nhật ký và trình kích hoạt:
CREATE TABLE dbo.TableNameDeleteLog
(
PK_From_TableName INT,
Program NVARCHAR(128),
Host NVARCHAR(128),
IP VARCHAR(48),
When DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
GO
CREATE TRIGGER dbo.LogDelete_TableName
ON dbo.TableName
FOR DELETE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @p NVARCHAR(128), @h NVARCHAR(128), @i VARCHAR(48);
SELECT @p = s.host_name, @h = host_name, @i = c.client_net_address
FROM sys.dm_exec_sessions AS s
INNER JOIN sys.dm_exec_connections AS c
ON s.session_id = c.session_id
WHERE s.session_id = @@SPID;
INSERT dbo.TableNameDeleteLog(PK_From_TableName, Program, Host, IP)
SELECT PK_Column, @p, @h, @i
FROM deleted;
END
GO
SQL Server không lưu trữ thông tin đó. Nếu bạn có một bản sao lưu, bao gồm các tệp nhật ký giao dịch, bạn có thể xác định chính xác khi xóa xảy ra, bằng cách khôi phục và tìm kiếm những hồ sơ bị thiếu.
Bạn chỉ có thể tìm thấy tên máy chủ / IP / chương trình miễn là bạn đã đăng nhập ở nơi khác. Có thể có dấu vết trong nhật ký sự kiện, nhật ký SQL hoặc các địa điểm khác, về hoạt động nói chung, nhưng không có nhật ký cụ thể (không bị nhầm lẫn với hồ sơ nhật ký giao dịch) được lưu trữ để xóa hồ sơ.