2010-08-05 154 views
3

我想就您在SQL脚本中采用的安装数据库的最佳实践发表意见。最佳实践SCRIPT安装数据库

问题A) 在我的脚本中,我有几个批次来创建表。 表格中有许多外键,因此我必须按正确顺序安排批次以避免与FK表冲突。 我想知道如果可能是一个好的做法创建表和所有没有FK第一列,并在ALTER这样的表添加FK脚本的末尾。

问题B) 我的脚本应该用来在不同的服务器上创建不同的数据库。 数据库在每次安装时可能有不同的名称。 现在,在我的剧本我创建一个使用数据库:

CREATE DATABASE NameX 

和:

USE NameX 

使用它。

因为我需要手动更新每个安装的脚本。我认为在命令脚本内部命名数据库方面有一个CENTRALIZED方法。 以这种方式更改一个简单的变量将创建数据库与我的名字和所有USE语句。 我试图使用LOCAL VARIABLES,但没有成功,因为在GO语句后他们超出了范围。 我没有任何使用sqlcmd和变量的经验。

任何想法如何解决它在我的脚本内? PS:我使用MS SQL 2008年,我将加载我的脚本在MS短信

谢谢你们的帮助,这个社会是伟大的:-)

回答

2
    使用“USE DATABASE”
  • 分离数据库中创建脚本和数据对象创建脚本
  • 使用一些代码(设置,部署)来执行创建数据库脚本通过与真实姓名
  • 替换@database_name
  • 避免

替代:

  • 使用一些替代工具准备部署前的脚本(它只是代表花边你@@@数据库名称@@@实名)
  • 使用bat文件编写脚本

在Visual Studio替代

  • 使用数据库项目。VS能够产生一些变量的设置项目,可以在部署过程中改变..
+0

伊戈尔感谢您杉木意见 – GibboK 2010-08-05 10:20:35

+0

欢迎,万事如意! – garik 2010-08-05 10:54:26

1

通常一个与脚本所有表开始,然后是FK脚本,索引脚本和其他。这是正常的做法,因为你不能将关系添加到不存在的表...

至于你的第二个问题 - 我不知道为什么集中这个。您最好的选择是全局搜索/替换SSMS中打开文件的数据库名称。

+0

嗨俄德,我想同样的两个问题。感谢您的评论 – GibboK 2010-08-05 08:46:32