脚本数据库SQL Server 2008

我有一个数据库在一个SQL Server 2008服务器。

我在开发中对模式进行了一些更改,但不想上传,因为我想保留服务器上的数据。

有一个脚本我可以运行,将备份在我的表中的数据,最好还有一种方法来保存shema。

然后,我希望能够从dev上传模式更改,并从备份中还原所有数据。

我正在寻找一个免费的方式来做到这一点,所以我不能购买任何工具。

伙计们,SQL Server 2008 Management Studio 的确可以让你编写模式和数据的脚本 – 这是一个新增function,但并不为人所知。

在“脚本向导”的“表选项”下,将“脚本数据”设置更改为True(默认情况下为False),它将生成包含所有数据的INSERT T-SQL语句以及表模式。

这里也讨论了SF在这里的问题,我只是用一个屏幕截图来讨论这个问题 – 参见在SQL 2008中使用SSMS脚本模式和数据 。

希望这可以帮助!

假设您对数据库拥有所有者权限,则可以右键单击数据库名称,然后select“生成脚本”以创build脚本。 这将启动一个向导,允许您select想要脚本的对象并将该脚本转储到文件,查询窗口或剪贴板。

Management Studio中没有自动化的方式来转储所有的数据,但是您不需要为了执行模式更改而恢复数据 – 更改表的定义通常不会删除或更改数据,也不需要其他对象直接触摸数据。 在对生产服务器进行更改之前,我只是使用Management Studio中的标准备份命令进行备份。

“生成脚本”很好,但如果你想能够“区分”一个模式的两个版本,我build议使用ScriptDB( http://www.codeplex.com/ScriptDB )。 它输出与“生成脚本”(它像使用pipe理工作室一样使用SQL Serverpipe理对象)几乎相同的脚本,但将输出放置在包含文件的目录中,非常类似于pipe理工作室中的视图。 在模式版本之间运行diff是非常方便的。 我发现,试图区分“生成脚本”的输出,有时候大块的代码在版本之间移动,但是没有改变(尤其是当它来自两个不同的数据库,独立开发者一直在工作)。

你有没有考虑在'开发'环境旁边的'暂存'或'qa'环境中实现这些变化?

采取生产数据库的备份。 将其还原到您托pipe“dev”的相同环境中的新数据库。 这将使您有机会将这些更新脚本运行到实时数据的镜像中。 然后你会知道你的改变脚本是多么的成功。