【发布时间】:2021-05-07 15:21:30
【问题描述】:
据此:
Microsoft description of how SQL works
当您进行以下一项或多项更改时,会出现此问题 到表:您更改列的允许 Nulls 设置。你 重新排序表中的列。您更改列数据类型。你加 一个新的列。您更改表的文件组或其文本/图像 数据。
我尝试将列上的 nvchar 的最大长度从 25 更改为 100,但它不会让我保存它。
它根本没有被列为应该出现此错误的条件之一。
谁能告诉我为什么 SSMS 18 对我这样做?
【问题讨论】:
-
您正在运行什么 SQL 以获取此错误?更改字符串列的长度(更长的长度)通常不会被阻止;除非该列被用作外键候选。
-
我刚刚进入设计器并将其从 25 更改为 100 并告诉它保存。当我尝试使用查询更改它时,它会显示: Msg 5074, Level 16, State 1, Line 1 对象'SSMA_CC$Table$City$disallow_zero_length' 取决于列'City'。消息 4922,级别 16,状态 9,第 1 行 ALTER TABLE ALTER COLUMN City 失败,因为一个或多个对象访问此列。
-
不要使用设计器。
ALTER专栏。 -
嗯,你去吧,@ZCT,有依赖关系;正如我在原始评论中提到的那样。您需要
DROP那些依赖项,ALTER列,然后重新创建它们。
标签: sql-server ssms