无法在 SQL Azure 中 drop/alter 列

Cannot drop/alter column in SQL Azure

正如标题所说,我无法删除或更改 SQL Azure 中的列。我想将其数据类型从 int 更改为 tinyint。我确实指定了 tinyint,但 Azure 似乎覆盖了它。 我已经通过管理控制台和 SSMS 进行了尝试。 我发现了以下 SO 问题,但重要的是,我的列不是 primary/foreign 键,甚至没有在索引中使用。 SQL Azure - Could not able to alter column type

在 Aure 管理控制台中,我收到以下错误

<?xml version="1.0" encoding="utf-8"?><m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><m:code>InternalError:7752a6bb-a244-f1a0-221b-b9c482ae6680</m:code><m:message xml:lang="en-US">An error was encountered while applying the changes.&#xD;
An exception occurred while executing the Transact-SQL statement: ALTER TABLE [dbo].[xxxxx] DROP COLUMN [EmailFrequency2].&#xD;
The object 'ColumnDefault_b0898c7d-0fb6-4466-8894-1325eb8c4efd' is dependent on column 'EmailFrequency2'.&#xD;
ALTER TABLE DROP COLUMN EmailFrequency2 failed because one or more objects access this column.</m:message></m:error>

我确实尝试使用谷歌搜索 "InternalError:7752a6bb-a244-f1a0-221b-b9c482ae6680" 但搜索结果为零。

我尝试在尝试更改 table 时禁用约束(将数据类型从 int 更改为 tinyint):

ALTER TABLE [dbo].[xxxxx] NOCHECK CONSTRAINT ALL
ALTER TABLE [dbo].[xxxxx] ALTER COLUMN [EmailFrequency] TINYINT NULL
ALTER TABLE [dbo].[xxxxx] NOCHECK CONSTRAINT ALL

但我得到了基本相同的错误:

Msg 5074, Level 16, State 1, Line 2
The object 'ColumnDefault_871cbb52-f294-4a57-9c51-b8fd435d0d59' is dependent on column 'EmailFrequency'.
Msg 4922, Level 16, State 9, Line 2
ALTER TABLE ALTER COLUMN EmailFrequency failed because one or more objects access this column.

我在任何地方都找不到对 ColumnDefault_xxxx-GUID-xxx object 的任何引用

谁能建议我如何绕过这个限制?我能够重命名 table,但不能删除它或更改数据类型。

默认值是您设置的约束,您必须先将其删除:

ALTER TABLE xxxxx DROP CONSTRAINT <name of your default here>

我使用代码优先迁移,在我的例子中,我试图通过在 [=19= 上方使用 [Required] 注释使 class 的 属性 不为空].当我试图到达终点时,这一直给我 JSON 响应 "An error has occurred"。

一段时间后,我意识到我在那个特定的 table 中有记录,它对 属性 没有价值,我试图使它不为空,因此出现错误。愚蠢的错误。我希望我可以将某人从数小时的谷歌搜索中解救出来。哈哈