Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Visual Studio数据库项目约束-表脚本还是单独的文件?_Database_Visual Studio_Database Project - Fatal编程技术网

Database Visual Studio数据库项目约束-表脚本还是单独的文件?

Database Visual Studio数据库项目约束-表脚本还是单独的文件?,database,visual-studio,database-project,Database,Visual Studio,Database Project,在Visual Studio数据库项目中,我看到以两种不同的方式添加了表约束: 作为用于创建表的同一脚本文件的一部分,在CREATETABLE语句之后 在单独的文件中,保存在“Tables\Constraints”文件夹中,每个文件一个约束 是否有充分的理由这样做或那样做 VisualStudio在从SQLServer导入数据库时排名第二,所以我想这是最好的方法,但我不明白为什么。从开发人员的角度来看,数字1似乎更好,因为它使表定义和约束“更接近”彼此。我只能想到将它们保持在一起的原因(#1)正

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

  • 作为用于创建表的同一脚本文件的一部分,在CREATETABLE语句之后
  • 在单独的文件中,保存在“Tables\Constraints”文件夹中,每个文件一个约束
  • 是否有充分的理由这样做或那样做


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

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


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

    强烈支持#1。将约束与表脚本分离会使以后添加不可为null的列变得非常困难。部署时,生成的ALTER TABLE脚本将无法向包含现有数据的表中添加NOTNULL列,因为它没有默认约束。如果“创建表”脚本中已经存在约束,则ALTER TABLE将使用该约束,一切都将正常工作。

    为了便于最终升级到SSDT数据库项目,请选择#1!或者为什么不从一开始就使用SSDT数据库项目?