更改后未在SQL Server Management Studio中保存

问题描述:

我在SQL Server 2008中有一个数据库。我通过添加一些新表来开发数据库。最后,我分离并再次附加它。但应用的更改(重新设计,添加和删除表)不再存在...更改后未在SQL Server Management Studio中保存

会发生什么?为什么我不能将更改保存在数据库中?

+1

您是如何修改表格的?你是否创建了一个脚本并实际执行它? – 2014-08-27 15:09:39

+0

@SeanLange no我使用了管理工作室的界面。只需**,右键单击表**文件夹 - >然后**新表** – 2014-08-27 15:14:11

+1

呃。你真的应该使用脚本来创建对象。最初可能会稍微慢一点,但从长远来看,它会更快。除此之外,你在分离之前是否保存这些表格?只需拉起UI来创建表格就不会创建表格。你必须保存它。 – 2014-08-27 15:16:55

This article可以帮助你理解这个问题:

更改时对数据库进行,包含这些更改事务日志在.LDF文件被捕获。过了一段时间后,所做的更改将转移到.MDF文件中,这是您移动并重新连接的内容。

如果您在完成该过程之前分离了数据库,那么有关表更改的信息尚未转移到.mdf文件。当你连接数据库时,它只知道.mdf文件,而不是.ldf文件,并且缺少你的更改。

试试这个:将.ldf文件和.mdf文件一起复制到新目录中,并从那里附加数据库。它应该有所有变化。

+0

谢谢,但你是否认为备份或复制数据库,并使用BACKUP和RESTORE而不是分离。 – 2014-08-27 17:21:28

+0

[那个讨论](http://dba.stackexchange.com/questions/11177/attach-detach-vs-backup-restore)可能是[一个单独的问题](http://meta.stackexchange.com/questions/ 39223/one-post-with-multiple-questions-or-multiple-posts)...我想验证建议的更改是否解决了问题,然后再继续讨论该问题,这取决于许多其他因素。 – AHiggins 2014-08-27 17:24:53