2011-06-22 68 views
0

我有一个主数据库,我们定义了我们软件的所有信息。 它包含任何人都知道SQL Server的一个好的数据库设置工具?

  • 查询
  • 触发
  • 存储过程
  • 存储函数
  • 元数据
  • 在表中(内容)

目前,我手动进行每一项更改(在SQL Management Studio的某些支持下)编辑文件,其中包含上述内容的所有CREATE,UPDATE,INSERT语句。当我必须创建一个新的数据库时,我启动所有包含我的SQL语句的xyz.sql文件。

我知道管理工作室中有一个数据库创建脚本向导,但是这个例如不包括内容数据。我还需要确保这些东西以正确的顺序执行(例如,查询,函数等),然后结构表可用。

目前我正在考虑一个.NET项目,我开始阅读所有的shema表格,然后自动创建这些文件。在Ruby on Rails中,系统创建一个shema.rb和数据yaml文件。我尝试过使用这个工具,但是许多表并不是由活动记录创建的(旧的C++东西也在运行),这对我来说不起作用。

那么,有没有人有任何提示我如何做到最好或任何适合我需求的工具?

回答

1

SQL Compare Pro应该能够加载你DDL创建脚本并将其部署到目标以正确的顺序。在“编辑项目”对话框中,确保将脚本加载为脚本文件夹。对于您需要使用SQL Data Compare Pro的数据。如果您有任何问题或有任何疑问,请告诉我,因为我在Red Gate工作,所以能够帮助您使用这些工具。

我有点困惑,为什么你有更新,因为这些脚本从头开始创建一个数据库。他们不应该全部是INSERT吗?

SSMS 确实也有能力创建数据脚本。您需要SSMS 2008,并且需要转到任务/生成脚本,并且在“选择脚本选项”窗格中必须确保脚本数据设置为True。

如果您希望将这些脚本维持为源代码控制SQL Server对象的明智方式,那么您可能需要考虑SQL Source Control。这会将您的模式对象和静态数据表保存为单独的.sql文件。

+0

Update语句用于更新不同版本的数据字段。例如,我在表中添加一个新字段,如果添加了它,它将包含NULL,所以我需要更新脚本,并使用默认值填充软件更新。 – YvesR

+0

感谢您的澄清。请让我知道您最终决定采用哪种方案。 –

+0

请通过邮件与我联系,所以我们可以谈谈它。谢谢。 – YvesR

1

“我知道管理工作室中有一个数据库创建脚本向导,但是这个例如不包含内容数据。”

你必须仔细看!当然,这个内置脚本引擎可以包含内容数据。你只需要点击标签为“属性”的按钮(或者类似的东西),你就可以改变所有的SMO脚本选项,包括完整的数据转储。

这会在具有许多INSERT INTO ...语句的脚本中结束。

In-depth description

1

尝试DbSourceTools
它是一个SQL管理工具,专门用于将SQL数据库脚本编写为磁盘(包括数据),然后使用“部署目标”重新创建它们。
我们将它用于敏捷项目中的数据库源代码控制。

相关问题