撤消对 SQL Server 2005 数据库的更改
Posted
技术标签:
【中文标题】撤消对 SQL Server 2005 数据库的更改【英文标题】:Undo changes to SQL Server 2005 database 【发布时间】:2008-10-14 23:25:48 【问题描述】:我在数据库 [SQL Server Server 2005] 上运行了一些“ALTER”脚本,并覆盖了一些存储过程。有什么方法可以撤消更改并恢复我的旧存储空间?
有没有办法从 .LDf 文件中获取执行的脚本?这样我就可以为我的存储过程重新运行我最初的“创建”脚本。
我没有旧存储过程的备份文件。
附言我根据@Gulzar's 删除的答案备份了数据库,看起来我已经“上当”了。
@Pittsburgh DBA:thanx 的解决方案,但备份后似乎不起作用。
道德:等待 10 分钟,然后再尝试建议的答案
来自 Gulzar 的更新:我的意思是在尝试任何事情之前先备份文件(为了安全起见)。不是 SQL Server 备份。
【问题讨论】:
好吧,我保留对此事的进一步评论,直到我有机会看看是否有一些我不知道的奇怪新功能。更详细地解释了发生在你身上的事情。这里:blogs.msdn.com/arvindsh/archive/2007/06/15/… 首先,我真的很抱歉。这是我尝试过的东西,看起来很有效。通常,如果我想尝试一些特别是来自论坛中的建议的东西,我会在副本上完成。我在想你也会这样做。再次抱歉。 @Mitch - 你是对的。所以声誉不是一切。我从来没有说过我是专家。我的主要观点是帮助人们解决更简单的问题。:) 这一集教会了我从现在开始要非常小心。 备份,我的意思是文件备份。不是 SQL 服务器备份。 来吧......现在谁在乎?一切都好! 【参考方案1】:首先:暂时不要进行任何备份。
市场上有几种工具可以做这种事情。
你可以试试这个:
ApexSQL Log
【讨论】:
我从未使用它来恢复删除的表,但文档支持它会这样做的想法。 通过备份,我实际上是指在尝试任何事情之前制作数据库和日志文件的副本(作为备份)。 sql备份不是我的意思。【参考方案2】:以防其他人遇到同样的问题 - 您是否每 X 分钟备份一次事务日志?如果是这样,您可以使用 Quest LiteSpeed 的日志阅读器或 Quest Toad for SQL Server 的日志阅读器来读取日志文件备份。它也为日志备份或 ldf 中的任何事务提供撤消/重做脚本。
【讨论】:
【参考方案3】:然后,考虑使用 ApexSQLScript 定期编写数据库脚本(并存储在版本控制中)。
【讨论】:
【参考方案4】:你可以! 转到 sql server 管理工作室,连接到您的数据库,左键单击您的数据库并转到“任务”。 选择还原-> 数据库。 然后单击“时间轴”按钮并选择“特定日期”并选择错误前一天。 必须关闭所有有权访问您的数据库的程序。 它对我有用,我也有同样的问题。
【讨论】:
以上是关于撤消对 SQL Server 2005 数据库的更改的主要内容,如果未能解决你的问题,请参考以下文章
以兼容级别 80 运行 SQL Server 2005 数据库是不是会对性能产生负面影响?
Sql Server 2005/2008数据库被标记为“可疑”/“质疑”的问题