删除数据库SQL Server 2012中的对象

时间:2016-06-13 13:07:04

标签: sql sql-server tsql sql-server-2012

SQL Server中是否有任何视图或系统表返回所有已删除的视图或系统表 特定数据库中的对象(表,视图等)?

3 个答案:

答案 0 :(得分:5)

没有

一旦删除它们就会消失。

它们占用的空间最终会被覆盖,有可能在此之前从数据文件的分析或事务日志中获取一些信息,但内置任何内容。

答案 1 :(得分:2)

试试这个:

SELECT 
    [Operation],
    [Transaction Id],
    [Transaction SID],
    [Transaction Name],
    [Begin Time],
    [SPID],
    [Description]
FROM 
    fn_dblog (NULL, NULL)
WHERE 
    [Transaction Name] = 'DROPOBJ'

来源:https://www.mssqltips.com/sqlservertip/3090/how-to-find-user-who-ran-drop-or-delete-statements-on-your-sql-server-objects/

答案 2 :(得分:2)

为了获得有关DROP事件(以及其他事件)的一些基本信息,我使用了SQL Server的默认跟踪。

请参阅以下文章https://www.simple-talk.com/sql/performance/the-default-trace-in-sql-server---the-power-of-performance-and-security-auditing/部分对象事件。小心WHERE谓词。

注意:提到的脚本不会返回已删除/截断的数据。如果您有备份或数据库处于完全恢复状态,则有一些希望恢复已删除的数据,但您必须提供更多信息。