Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как редактировать функцию, использующуюся в формуле поля?  [new]
ArkadyL
Member

Откуда: СПб
Сообщений: 164
Здравствуйте!

Написал небольшую функцию для вычисляемого поля и упомянул её в Formula поля. Теперь SQL Server 2000 не даёт её редактировать, пишет при компилировании: Cannot ALTER <имя функции> because it is being referenced by object <имя таблицы>.
Можно ли это обойти или я использую неправильный подход к созданию вычисляемых полей в таблицах?
1 авг 12, 15:32    [12947063]     Ответить | Цитировать Сообщить модератору
 Re: Как редактировать функцию, использующуюся в формуле поля?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Дропните поле, поменяйте функцию, добавьте поле.
1 авг 12, 15:47    [12947197]     Ответить | Цитировать Сообщить модератору
 Re: Как редактировать функцию, использующуюся в формуле поля?  [new]
ArkadyL
Member

Откуда: СПб
Сообщений: 164
До этого и я додумался, могу и формулу удалять, оставляя поле. Но полей с функцией может быть много.
Запрет примитивного редактирования функции кажется слишком жестоким. Нельзя ли это как-то культурно обойти?
1 авг 12, 15:52    [12947251]     Ответить | Цитировать Сообщить модератору
 Re: Как редактировать функцию, использующуюся в формуле поля?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
ArkadyL
Нельзя ли это как-то культурно обойти?
Не меняйте функцию. Не делайте вычисляемых полей. Напишите скрипт на дроп полей с вашей фукнцией, потом на создание. Или вы думаете, в сказку попали?
1 авг 12, 15:54    [12947281]     Ответить | Цитировать Сообщить модератору
 Re: Как редактировать функцию, использующуюся в формуле поля?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ArkadyL
До этого и я додумался, могу и формулу удалять, оставляя поле.


В 2000 вычисляемое поле всегда толькео виртуальное. Поэтому оставить его нельзя.

ArkadyL
Но полей с функцией может быть много.
Запрет примитивного редактирования функции кажется слишком жестоким. Нельзя ли это как-то культурно обойти?


Обойти нельзя. Если функция использутеся во многих местах, то можно атоматизировать процесс алерта построением скриптов.
1 авг 12, 15:56    [12947299]     Ответить | Цитировать Сообщить модератору
 Re: Как редактировать функцию, использующуюся в формуле поля?  [new]
aleks2
Guest
pkarklin
Обойти нельзя. Если функция использутеся во многих местах, то можно атоматизировать процесс алерта построением скриптов.


Можна
1. Пишем доп. функцию

create function dbo.dummy_F(x int)
return int
as 
-- вызываем в ей настоящую
return dbo.F(x)


2. Запихиваем dbo.dummy_F в вычисляемое поле.

3. dbo.F можна невозбранно редактировать.
1 авг 12, 17:39    [12948089]     Ответить | Цитировать Сообщить модератору
 Re: Как редактировать функцию, использующуюся в формуле поля?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
aleks2
Можна


и имеем 2х больше функций... Ну его на...
1 авг 12, 17:56    [12948232]     Ответить | Цитировать Сообщить модератору
 Re: Как редактировать функцию, использующуюся в формуле поля?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
ArkadyL
Запрет примитивного редактирования функции кажется слишком жестоким.
Издеваетесь?

Ну если очень хочется, то можно, но не больше 10 символов. Только на лапу дать не забудь. И когда будешь менять - прикрой ладошкой монитор.
А когда сервер спросит "С виду вроде тоже самое, но ты уверен что логика не поменялась?". Отвечай громко - "Зуб даю, сто пудова", не мямли.
Кстати не забудь SET LANGUAGE Russian; а то буржуи принципиальные.
1 авг 12, 20:33    [12948991]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить