Имя: Пароль:
IT
Админ
MSSQL: Cannot ALTER FUNCTION 'dbo.function' because it is being referenced by...
0 vcv
 
27.10.19
18:13
При попытке внести изменения в скалярную функцию выдаёт ошибку. Функция используется в представлениях.
Вопрос не в том, почему ругается. Гугл был замучен и советы "удалить колонку, изменить функцию, добавить колонку" вполне понятны.
Непонятно одно: почему из десятка представлений, в которых однотипно используется эта функция, ругается не на все, а только на часть?
Во всех представлениях однотипный запрос
SELECT ... , dbo.КодКонтрагента(Контрагенты.DESCR, Контрагенты.CODE) AS КонтрагентыКод, ...
но ругается не на все? Почему? И что сделать что бы на все представления перестал выдавать ошибку? В свойствах представлений разницы не замечено.
1 ДенисЧ
 
27.10.19
18:30
Где-то есть schemabinding ?
Она вроде в таких случаях ругается
2 vcv
 
27.10.19
18:41
(1) Есть. Помню, что включал её, но не могу сейчас вспомнить, почему.
3 vcv
 
27.10.19
18:51
Вспомнил. Разобрался. Спасибо общественности в роли "желтой резиновой уточки" :)
Когда-то включил представления в схему, что бы экспериментировать с дополнительными индексами в представлении. После этого и возникла проблема с невозможностью модифицировать функции.
Пересоздал представления, исключив их из схемы - проблема рассосалась.