Изменение функции, используемой в качестве столбца по умолчанию в SQL Server

У нас проблема с плохо закодированной функцией SQL (которая отлично работает в реальном времени, но не в нашей тестовой среде). Эта функция используется для предоставления значения по умолчанию во многих таблицах. Попытка ALTER возвращает ошибку "Cannot ALTER ###, потому что на нее ссылается объект".

Есть ли способ обойти это сообщение об ошибке? Единственный способ, о котором я могу думать, - это попытаться написать скрипт, чтобы удалить его из каждой таблицы, в которой он используется по умолчанию, изменив функцию и добавив ее после.

Ответ 1

Поскольку объект ссылается, вы не можете его изменить. Это то, что вы делаете:

  • Удалить ограничение по умолчанию из таблицы/столбца
  • Измените функцию
  • Добавить ограничение по умолчанию назад

Ответ 2

SQL Server не позволит вам изменять функцию, связанную с ограничением DEFAULT для столбца.

Единственный вариант - удалить ограничение перед изменением функции. (Источник)