Я пытаюсь изменить размер столбца на сервере sql, используя:
ALTER TABLE [dbo].[Address]
ALTER COLUMN [Addr1] [nvarchar](80) NULL
где длина Addr1
была изначально 40
.
Не удалось, возникла эта ошибка:
The object 'Address_e' is dependent on column 'Addr1'.
ALTER TABLE ALTER COLUMN Addr1 failed because one or more objects access
this column.
Я попытался прочитать его, и мне кажется, что поскольку некоторые представления ссылаются на этот столбец, кажется, что SQL Server на самом деле пытается удалить столбец, вызвавший ошибку.
Address_e
это представление, созданное предыдущим администратором БД.
Есть ли другой способ изменить размер столбца?
sql
sql-server
Staelen
источник
источник
Ответы:
Представления, вероятно, создаются с использованием параметра WITH SCHEMABINDING, а это означает, что они явно подключены для предотвращения таких изменений. Похоже, что схема сработала и помешала вам нарушить эти представления, удачный день, а? Обратитесь к администратору базы данных и попросите его внести изменения после того, как они подтвердят влияние на базу данных.
Из MSDN :
источник
источник
Если кто-то хочет «Увеличить ширину столбца реплицируемой таблицы» в SQL Server 2008, то нет необходимости изменять свойство «
replicate_ddl=1
». Просто выполните следующие шаги -ALTER TABLE [Table_Name] ALTER COLUMN [Column_Name] varchar(22)
varchar(x)
доvarchar(22)
и такое же изменение, которое вы можете увидеть на подписчике (транзакция была реплицирована). Таким образом, нет необходимости повторно инициализировать репликациюНадеюсь, это поможет всем, кто его ищет.
источник
См. Эту ссылку
Изменение размера или изменение столбца таблицы MS SQL Server с ограничением по умолчанию с помощью команд T-SQL
решение такой проблемы с SQL Server будет
Отмена или отключение ограничения DEFAULT для столбца таблицы.
Изменение типа данных столбца таблицы и / или размера данных.
Повторное создание или включение ограничения по умолчанию для столбца таблицы sql.
до свидания
источник
вот что работает с версией программы, которую я использую: может сработать и для вас.
Я просто размещу инструкцию и команду, которая это делает. class - это имя таблицы. с помощью этого метода вы меняете его в таблице самостоятельно. не только отдача от поискового процесса.
просмотреть класс таблицы
измените длину столбцов FacID (отображается как «faci») и classnumber (отображается как «classnu»), чтобы они соответствовали всем меткам.
просмотрите таблицу еще раз, чтобы увидеть разницу
(запустите команду еще раз, чтобы увидеть разницу)
Это меняет фактическую таблицу к лучшему, но к лучшему.
PS Я сделал эти инструкции как примечания к командам. Это не тест, но на одном может помочь :)
источник
Проверьте сопоставление столбцов. Этот сценарий может изменить параметры сортировки по умолчанию для таблицы. Добавьте в скрипт текущее сопоставление.
источник