微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

目标数据库中没有列,但收到“架构更新正在终止,因为可能会发生数据丢失”

如何解决目标数据库中没有列,但收到“架构更新正在终止,因为可能会发生数据丢失”

我在发布 sql 项目时遇到错误

我正在使用一些测试数据对由生产模式构成的数据库进行测试。

当我从 Visual Studio 的数据工具操作选项卡查看错误时,我看到了:

/*
The column [dbo].[MyTableName].[UnexpectedColumnName] is being dropped,data loss Could occur.
*/
IF EXISTS (select top 1 1 from [dbo].[MyTableName])
    RAISERROR (N'Rows were detected. The schema update is terminating because data loss might occur.',16,127) WITH NowAIT
GO

但是,UnexpectedColumnName名称已经很久没有出现在该表中了。

问题是为什么会生成sql

解决方法

所以事实证明重构日志中有一些非常古老的东西。我要求发布步骤生成脚本而不是立即发布并搜索 UnexpectedColumnName

GO
PRINT N'The following operation was generated from a refactoring log file 69ad6ffa-f53e-4302-a9af-a6f6907e4eec,5879552a-9f2d-439c-82c8-352bbee08bb2';
PRINT N'Rename [dbo].[MyTableName].[ArbitraryRealColumnName] to UnexpectedColumnName';

GO
EXECUTE sp_rename @objname = N'[dbo].[MyTableName].[ArbitraryRealColumnName]',@newname = N'UnexpectedColumnName',@objtype = N'COLUMN';

然后我查看了重构日志,发现它与 GUID 匹配:

  <Operation Name="Rename Refactor" Key="5879552a-9f2d-439c-82c8-352bbee08bb2" ChangeDateTime="02/13/2020 20:07:08">
    <Property Name="ElementName" Value="[dbo].[MyTableName].[NotSureWhatThisIs]" />
    <Property Name="ElementType" Value="SqlSimpleColumn" />
    <Property Name="ParentElementName" Value="[dbo].[MyTableName]" />
    <Property Name="ParentElementType" Value="SqlTable" />
    <Property Name="NewName" Value="UnexpectedColumnName" />
  </Operation>

因为我们不使用那些重构日志功能,我只是删除了整个重构日志,一切正常。我想你也可以删除错误的重命名。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?