Разработка и сопровождение баз данных в среде СУБД MS SQL Server 2000. Сивохин А.В - 72 стр.

UptoLike

можно найти еще несколько, которые требовали бы внесения изменений в функцию.
Но уже и так ясно, что пользователь должен иметь возможность внесения изменений в
созданные ранее функции.
Изменение функции может быть выполнено двумя способами:
предварительное удаление функции с помощью команды DROP FUNCTION
и последующее создание обновленной функции с помощью команды
CREATE FUNCTION;
сохранение под именем существующей функции нового кода с помощью
команды ALTER FUNCTION.
Первый метод изменения функций связан с определенными проблемами. В
частности, если вы потратили довольно много времени на предоставление
пользователям права вызова функции, то в случае ее удаления, вся информация о
правах доступа к функции будет потеряна. После создания функции с помощью
команды CREATE FUNCTION вам нужно будет заново раздавать пользователям права
доступа к функции. Помимо проблем с правами доступа, также могут быть затронуты
другие объекты базы данных (триггеры, хранимые процедуры или другие функции),
использующие в своей работе изменяемую функцию. При последующем создании
функция будет являться новым объектом базы данных, имеющем то же имя, что и
старая функция, но другой идентификационный номер.
Для избежания описанных проблем при внесении изменений в функцию следует
использовать команду ALTER FUNCTION, специально предназначенную для выполнения
подобных операций. Эта команда имеет специальный синтаксис для функций
каждого типа.
Для изменения функций типа Scalar используется следующий синтаксис:
ALTER FUNCTION [owner_name.] function_name
( [ { @parameter_name scalar_parameter_data_type
[ = default ] } [ ,...n ] ] )
RETURNS scalar_return_data_type
[ WITH < function_option> [,...n] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
можно найти еще несколько, которые требовали бы внесения изменений в функцию.
Но уже и так ясно, что пользователь должен иметь возможность внесения изменений в
созданные ранее функции.
    Изменение функции может быть выполнено двумя способами:
    • предварительное удаление функции с помощью команды DROP FUNCTION
       и последующее создание обновленной функции с помощью команды
       CREATE FUNCTION;
    • сохранение под именем существующей функции нового кода с помощью
       команды ALTER FUNCTION.
    Первый метод изменения функций связан с определенными проблемами. В
частности, если вы потратили довольно много времени на предоставление
пользователям права вызова функции, то в случае ее удаления, вся информация о
правах доступа к функции будет потеряна. После создания функции с помощью
команды CREATE FUNCTION вам нужно будет заново раздавать пользователям права
доступа к функции. Помимо проблем с правами доступа, также могут быть затронуты
другие объекты базы данных (триггеры, хранимые процедуры или другие функции),
использующие в своей работе изменяемую функцию. При последующем создании
функция будет являться новым объектом базы данных, имеющем то же имя, что и
старая функция, но другой идентификационный номер.
    Для избежания описанных проблем при внесении изменений в функцию следует
использовать команду ALTER FUNCTION, специально предназначенную для выполнения
подобных операций. Эта команда имеет специальный синтаксис для функций
каждого типа.
    Для изменения функций типа Scalar используется следующий синтаксис:
    ALTER FUNCTION [owner_name.] function_name
        ( [ { @parameter_name scalar_parameter_data_type
              [ = default ] } [ , . . . n ] ] )
    RETURNS scalar_return_data_type
    [ WITH < function_option> [ , . . . n ] ]
    [ AS ]
    BEGIN
    function_body
    RETURN scalar_expression
    END