Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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
Sql server VS2010数据库项目部署将重建每个表_Sql Server_Visual Studio 2010_Database Project - Fatal编程技术网

Sql server VS2010数据库项目部署将重建每个表

Sql server VS2010数据库项目部署将重建每个表,sql-server,visual-studio-2010,database-project,Sql Server,Visual Studio 2010,Database Project,我最近在VS2010中为现有的SQLServer2008R2数据库创建了一个数据库项目。通过在末尾添加3个新列,我更新了11个表中的1个表。然后我更新了引用该表的4个视图 然后我尝试了构建/部署,它只生成一个脚本 我检查了脚本,对于数据库中的每个表,它都生成了代码,这些代码将创建每个表的临时版本,从现有表复制数据,删除原始表并重命名副本 我看到这里的帖子,它坚持为删除的列重建表,我尝试设置IgnoreColumnOrder,但没有任何区别。无论如何,这似乎与我的处境无关,所以我并不感到惊讶 我通

我最近在VS2010中为现有的SQLServer2008R2数据库创建了一个数据库项目。通过在末尾添加3个新列,我更新了11个表中的1个表。然后我更新了引用该表的4个视图

然后我尝试了构建/部署,它只生成一个脚本

我检查了脚本,对于数据库中的每个表,它都生成了代码,这些代码将创建每个表的临时版本,从现有表复制数据,删除原始表并重命名副本

我看到这里的帖子,它坚持为删除的列重建表,我尝试设置IgnoreColumnOrder,但没有任何区别。无论如何,这似乎与我的处境无关,所以我并不感到惊讶

我通过让DBA给我一个完全脚本化的生产版本来创建DB项目,在我的PC版SQL Server上构建DB,然后从中创建我的初始项目。我认为这不会有任何区别,我已经将表的项目定义与目标Dev DB进行了比较,它们是相同的

我已取消勾选“始终重新创建数据库”并勾选“如果可能发生数据丢失,则阻止增量部署”。难道他们和我的问题没有关系吗


有什么想法吗?

我找到了数据库的备份,按照彼得的建议,运行了一个模式比较。不同之处在于,目标数据库在大多数表上都有页面压缩,但这不在项目定义中。

您是否尝试过进行模式比较?您可能有一个排序规则差异或其他导致重建的细微差异。这也可以向你展示更多关于实际不同的细节。您也可以考虑尝试SSDT项目(在概念上与VS2010 DB项目非常相似),看看是否有任何不同。谢谢您的建议。不幸的是,昨晚我决定作为一种解决办法来保存数据,允许重新创建数据库,然后重新加载数据,这样我就无法再找到原因。我确实尝试过将模式与Systest环境进行比较,但在大多数表上都是“跳过”,因此无论问题是什么,我都无法再找出答案。你的建议对未来很有用。我想我不能安装SSDT。它们不是SQL Server 2012附带的吗?我的机器已经关机了,我很抱歉不能安装任何超出许可软件清单的软件。你可能想和那些想尝试SSDT的权威们聊聊。我发现在大多数情况下,它的功能比VSDB项目要好得多。我认为它可能会用完VS2010外壳,尽管可以选择使用VS2012和VS2013外壳。在这里可以看到更多:很高兴你发现了这个问题。这些是最容易错过的事情。