【问题标题】:ALTER COLUMN when table depends on the column当表依赖于列时 ALTER COLUMN
【发布时间】:2017-05-08 05:02:34
【问题描述】:

我正在尝试更改列类型以增加其大小,但 SQL 给了我以下消息

Msg 5074, Level 16, State 1, Line 1
The object 'table_name' is dependent on column 'column_name'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE ALTER COLUMN column_name failed because one or more objects access this column.

当我运行这个查询时

ALTER TABLE table_name ALTER COLUMN column_name VARCHAR (25) NULL;

我发现的有关此问题的问题要么是约束,要么是阻止您更新列的统计信息,但这里自己的表取决于我要编辑的列。

并且该列不用作 FK 或类似的东西。

如何更改列类型?

【问题讨论】:

  • 能否提供repro供我们测试
  • 您没有告诉我们的列显然有一些特别之处,因为我可以按照您描述的方式更改列,没有任何问题。
  • 可以分享一下桌子的ddl吗?
  • 我感觉您对要更改的列有自引用约束。

标签: sql-server tsql alter-table alter-column


【解决方案1】:

一种可能性是表中有一个ComputedCalculated列,其表达式基于此列?删除它可以解决问题。

请发布表格的完整 DDL,以便我们实际提供帮助

【讨论】:

  • 这更像是一个评论而不是一个答案。
  • 如果这是问题,那就是一个答案....没什么好说的
【解决方案2】:
ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]

注意:不要忘记 Null....

【讨论】:

    【解决方案3】:

    原来是全文索引在列上创建了这种依赖关系。必须完全删除全文索引,编辑列并重建它。

    【讨论】:

      猜你喜欢
      • 2013-11-26
      • 2012-04-09
      • 2019-12-05
      • 1970-01-01
      • 2023-03-09
      • 2017-02-26
      • 2020-07-01
      • 2014-08-19
      • 1970-01-01
      相关资源
      最近更新 更多