3

在 Visual Studio 数据库项目中,我看到表约束以两种不同的方式添加:

  1. 作为用于创建表的同一脚本文件的一部分,在 CREATE TABLE 语句之后;
  2. 在一个单独的文件中,保存在“Tables\Constraints”文件夹中,每个文件一个约束。

有充分的理由去做其中一个吗?

从 SQL Server 导入数据库时​​,Visual Studio 排在第 2 位,所以我猜这是最好的方法,但我不明白为什么。从开发人员的角度来看,数字 1 似​​乎更好,因为它使表定义和约束彼此“更接近”。

4

2 回答 2

3

由于您提到的原因,我只能想到将它们保持在一起的原因(#1):它使表定义和约束彼此更接近。

Visual Studio 曾经将约束保存在单独的文件中,但在 SQL Server Data Tools 引入的最新“SQL Server 数据库项目”模板中停止了这种做法(开箱即用地安装在 VS 2012 中,并且需要单独下载 VS 2010)。

于 2013-04-02T18:52:54.043 回答
1

强烈投票给#1。将约束与表脚本分开使得以后添加不可为空的列变得非常痛苦。部署时,生成的 ALTER TABLE 脚本将无法将 NOT NULL 列添加到具有现有数据的表中,因为它没有 DEFAULT 约束。如果约束已经在 CREATE TABLE 脚本中,ALTER TABLE 将使用它,一切都会正常工作。

于 2013-07-09T21:01:45.327 回答