DBAtlas · Атлас эксплуатации баз данных

4922: ALTER TABLE ALTER COLUMN failed because one or more objects access this column

SQL Server

Что это значит?

Вы попытались изменить тип/свойство столбца, но этому помешали объекты, зависящие от столбца (индекс, ограничение, вычисляемый столбец, статистика, представление с привязкой к схеме и т. д.). Столбец нельзя изменить, пока зависимости не будут устранены.

Почему возникает?

Столбец используется в индексе, ограничении PRIMARY KEY/UNIQUE/CHECK/DEFAULT, выражении вычисляемого столбца, представлении/функции, определённых WITH SCHEMABINDING, или объекте статистики. Изменение типа/размера сделало бы эти объекты недействительными, поэтому ALTER отклоняется.

Как исправить

Сначала найдите зависимые объекты и временно удалите или отключите их, измените столбец, затем создайте их заново. Чтобы увидеть зависимости, выполните запросы к sys.sql_expression_dependencies и sys.indexes/sys.default_constraints. Типичный порядок: DROP CONSTRAINT/INDEX -> ALTER COLUMN -> повторный CREATE. Для представлений с привязкой к схеме временно уберите SCHEMABINDING и затем верните его.

Открыть в DBAtlas →

Ещё по этой СУБД