我最近在VS2010中为现有的SQL Server 2008 R2数据库创建了一个数据库项目。我通过在最后添加3个新列来更新了11个表中的1个表。然后我更新了4个引用该表的视图。
然后我尝试了Build / Deploy,只生成一个脚本。
我检查了脚本,并且对于DB中的每个表,它都生成了代码,这些代码将创建每个表的临时版本,从现有表中复制数据,删除原始表并重命名副本。
我在这里看到了帖子,它坚持要重建表格以删除列,我尝试设置IgnoreColumnOrder,但它没有任何区别。无论如何,这似乎与我的情况无关,所以我并不感到惊讶。
我创建了我的数据库项目,让DBA为我提供了一个完全脚本化的Production版本,在我的PC版本的SQL Server上构建了该数据库,然后从中创建了我的初始项目。我不认为这会产生任何影响,我已经将表的项目定义与目标Dev DB进行了比较,它们是相同的。
我有"总是重新创建数据库"如果可能发生数据丢失,则不加攻击和"阻止增量部署"勾选。不要以为他们与我的问题有任何关系?
有什么想法吗?
答案 0 :(得分:1)
我找到了数据库的备份,根据Peter的建议,运行了Schema Compare。差异原来是目标数据库在大多数表上都有PAGE压缩,但这不在项目定义中。