sql-server - 发布数据库项目失败,因为部署脚本尝试删除并重新创建未修改的表
问题描述
我将 Visual Studio 15.8.5 与 Sql Server Data Tools 15.1 一起使用。
我创建了一个 SQL Server 数据库项目并导入了现有数据库的架构。我对数据库的几个表进行了一些小的更改,并将更新发布到开发数据库中,没有任何问题。
在项目中添加一些 SQL 脚本后,它们都具有:
Build Action = None
尽管项目的任何数据库对象都没有更改,但发布失败。
这是导致问题的自动生成的发布脚本的一部分:
/*
The table [lut].[KAE] is being dropped and re-created since all
non-computed columns within the table have been redefined.
*/
IF EXISTS (select top 1 1 from [lut].[KAE])
RAISERROR (N'Rows were detected. The schema update is terminating
because data loss might occur.', 16, 127) WITH NOWAIT
GO
不过,表[lut].[KAE]
并没有改变。其中一个脚本正在重新定义其架构,但这应该没有什么区别,因为这是一个“无构建”脚本。
我在这里可能做错了什么?
编辑:
我已经按照@MadBert 的建议进行了架构比较。我最初使用我的实际数据库作为源,我的 sql server visual studio 项目作为目标。没有发现差异。
然后我切换源数据库和目标数据库并再次进行比较。检测到以下“差异”。
如您所见,这不是实际差异,它看起来像是架构比较中的 Visual Studio 错误。关于如何规避这种行为的任何想法?
解决方案
推荐阅读
- python - 在 Python 中查询和更新 JSON
- javascript - 当 router-link 处于活动状态时影响其他组件
- c - C 比较 'x < 0' 其中 'x' 的类型是任意的,即可能是无符号的
- java - Android Sqlite 查询返回什么?
- c# - 如何从 Web 服务向我的 Windows wpf 应用程序获取推送通知
- keras - 是否可以在 GCP 上使用 keras 模型进行超参数优化
- spring-mvc - 对同一属性 ApiImplicitParams 使用多个自定义注释
- c# - 如何用手动代码替换“input.getaxis”
- geometry - 计算封闭多边形的内平分线
- opencv - 如何比较两个单词不同的图像?