Database Visual Studio数据库项目约束-表脚本还是单独的文件?
在Visual Studio数据库项目中,我看到以两种不同的方式添加了表约束:Database Visual Studio数据库项目约束-表脚本还是单独的文件?,database,visual-studio,database-project,Database,Visual Studio,Database Project,在Visual Studio数据库项目中,我看到以两种不同的方式添加了表约束: 作为用于创建表的同一脚本文件的一部分,在CREATETABLE语句之后 在单独的文件中,保存在“Tables\Constraints”文件夹中,每个文件一个约束 是否有充分的理由这样做或那样做 VisualStudio在从SQLServer导入数据库时排名第二,所以我想这是最好的方法,但我不明白为什么。从开发人员的角度来看,数字1似乎更好,因为它使表定义和约束“更接近”彼此。我只能想到将它们保持在一起的原因(#1)正
VisualStudio在从SQLServer导入数据库时排名第二,所以我想这是最好的方法,但我不明白为什么。从开发人员的角度来看,数字1似乎更好,因为它使表定义和约束“更接近”彼此。我只能想到将它们保持在一起的原因(#1)正是因为您提到的原因:它使表定义和约束彼此更接近
Visual Studio过去将约束保存在单独的文件中,但在SQL Server数据工具引入的最新“SQL Server数据库项目”模板中停止了这种做法(安装在VS 2012开箱即用,需要单独下载VS 2010)。强烈支持#1。将约束与表脚本分离会使以后添加不可为null的列变得非常困难。部署时,生成的ALTER TABLE脚本将无法向包含现有数据的表中添加NOTNULL列,因为它没有默认约束。如果“创建表”脚本中已经存在约束,则ALTER TABLE将使用该约束,一切都将正常工作。为了便于最终升级到SSDT数据库项目,请选择#1!或者为什么不从一开始就使用SSDT数据库项目?