在MS SQL 2012中意外地使列无效,我正在研究如何首次使用fn_dblog。我之前已经备份了表格,并在今天早上将其删除了。我正在使用完全恢复模式(以下代码,以供将来想要查找的人):
SELECT name, recovery_model_desc
FROM sys.databases
WHERE name = 'model' ;
GO
是否可以回滚过去12小时内提交的DROP TABLE事务?
我发现这笔交易似乎正是我想要的。但是只发现了最后3431行:
SELECT [Current LSN],
[Operation],
[Transaction ID],
[Parent Transaction ID],
[Begin Time],
[Transaction Name],
[Transaction SID]
FROM fn_dblog(NULL, NULL)
WHERE [Operation] = 'LOP_BEGIN_XACT'
如何使用此查询返回先前的交易?
我在这里不熟悉的领域。我还应该考虑什么?
使用fn_fblog有什么危险?在博客文章中我找到了这个(https://raresql.com/2013/04/15/sql-server-undocumented-function-fn_dblog/):
"毫无疑问,fn_dblog是一个有用的未记录的函数,但除非另有要求,否则不要在生产服务器中使用此函数。"这是什么原因?
===编辑===
另外,一篇非常有用的文章在这里: MS SQL日志记录的一个非常有用的介绍: http://www.sqlshack.com/reading-sql-server-transaction-log/