在SQL Server 2005上进行本地开发,然后部署到共享主机

时间:2009-05-26 16:23:51

标签: .net sql sql-server hosting data-migration

在对数据库设计和应用程序设计进行平滑处理然后部署到共享主机的同时,在本地开发SQL Server 2005计算机的最佳方法是什么?

在MySQL / phpMyAdmin世界中,您可以选择将表导出为DDL语句,数据表示为DDL之后的一堆插入。使用它,您可以删除一个表,重新创建它,并使用查询窗口中的所有数据加载它。

微软世界有什么接近这个的吗?是否有任何免费/开源工具可以帮助进行数据迁移?

5 个答案:

答案 0 :(得分:2)

SQL Server Management Studio Express(免费)包括TheTXI所提到的“Generate Scripts”选项。

Database Publication Wizard是一个更轻量级的产品(也是免费的),专门用于为架构和数据生成导出脚本。

警告 - 两者都不是100%可靠。我有时不得不修改脚本以使它们运行,特别是关于依赖对象的顺序。这是一种痛苦,但仍然比从头开始更好。

正如RedBeard所提到的,您应该跟踪您的DDL脚本,特别是“diff”脚本,它们会将您从一个数据库版本升级到下一个版本。在这种情况下,这些工具在正常开发周期中没有用处。但是,如果您没有以这种方式管理脚本,这些工具可以帮助您入门,并且还可以用于创建新实例,迁移实例,比较快照以及许多其他内容。

答案 1 :(得分:1)

生成所有数据库模式(表,存储过程,视图等)的脚本,并执行数据导出(如有必要),然后运行这些脚本并将数据导入共享主机。根据该主机,您可以通过Management Studio进行访问,这将是一个更简单的过程。

答案 2 :(得分:1)

有两种选择:

跟踪数据库的DDL脚本

您有一组可以执行的脚本来创建或更新数据库。您实际上可以从SQL Server数据库本身提取DDL语句。查看INFORMATION_SCHEMA系统视图。

示例,要获取有关存储过程及其定义的信息,请查看ROUTINE_DEFINITION字段(请记住,您将找到一些您未定义但是内置于sql server的其他过程):

SELECT SPECIFIC_SCHEMA,SPECIFIC_CATALOG, SPECIFIC_NAME, ROUTINE_DEFINITION 
FROM INFORMATION_SCHEMA.ROUTINES

使用Visual Studio数据库团队版(附带开发人员团队版)

基本上它可以为您完成上述操作并简化数据库的设置和修订控制。它允许您定义数据和结构,还有很多单元测试功能。

备份和还原本地数据库

备份本地数据库,将其上传到主机,然后在那里恢复数据库。

复制/移动MDF / LDF文件

与备份/恢复类似,您需要分离数据库,将文件复制或移动到Web主机,然后重新连接到那里。

使用SQL Server引擎将MDF / LDF文件附加到ASP.NET的<_ h3>的App_Data文件夹中

应该有一些如何做到这一点的例子。它将数据库视为文件,但它确实需要在Web主机上安装SQL Server引擎。

作为示例,取自ASP.NET MVC模板(web.config):

<connectionStrings>
  <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings> 

答案 3 :(得分:0)

TheTXI的解决方案很好。进行备份和恢复它也有效,并且有时(取决于ISP /主机的MS SQL锁定)是唯一的选择。

答案 4 :(得分:0)

您还可以选择提供myLittleBackup(www.mylittlebackup.com)等工具的共享托管公司,以便您可以在共享服务器上轻松安装/恢复数据库。