最佳实践SCRIPT安装数据库

时间:2010-08-05 08:22:52

标签: sql database scripting

我想就SQL脚本安装数据库时采用的最佳实践提出自己的看法。

问题A) 在我的脚本中,我有几个批处理来创建表。 表格彼此有许多外键,目前我必须按正确的顺序安排批次,以避免与FK表冲突。 我想知道在没有FK的情况下创建表和所有列是否是一个好的做法,并且在脚本的末尾ALTER这样的表添加FK。

问题B) 我的脚本应该用于在不同的服务器上创建不同的DB。 数据库在每次安装时都可以有不同的名称。 现在在我的脚本中,我使用:

创建一个数据库
CREATE DATABASE NameX

USE NameX

使用它。

因为我需要手动更新每个安装的脚本。我认为使用CENTRALIZED方法在脚本中命名数据库会很棒。 这样,更改一个简单变量将使用我的名字和所有USE语句创建数据库。 我尝试使用LOCAL VARIABLES,但没有成功,因为在GO语句之后它们超出了范围。 我没有任何使用sqlcmd和变量的经验。

知道如何在我的脚本中解决它吗? PS:我使用MS SQL 2008,我将在MS SMS中加载我的脚本

谢谢你们的帮助,这个社区很棒: - )

2 个答案:

答案 0 :(得分:2)

  • 避免使用“USE DATABASE”
  • 分离数据库创建脚本和数据对象创建脚本
  • 使用一些代码(Setup,Deploy)通过将@database_name替换为真实姓名来执行创建数据库脚本

替代:

  • 在部署之前使用一些替换工具来准备脚本(它只是用真实姓名替换你的@@@ database_name @@@)
  • 使用bat文件准备脚本

替代

  • 在Visual Studio中使用Database Project。 VS可以生成一些设置项目可以在部署过程中更改的变量。

答案 1 :(得分:1)

通常,首先要编写所有表的脚本,然后是FK脚本,索引脚本和其他表。这是正常做法,因为您无法向不存在的表添加关系...

关于你的第二个问题 - 我无法集中注意这个问题。您最好的选择是全局搜索/替换SSMS中打开文件的数据库名称。