Кто может изменить функцию?
Выполнить оператор ALTER FUNCTION могут:
-
Владелец хранимой функции;
-
Пользователи с привилегией
ALTER ANY FUNCTION.
Выполнить оператор ALTER FUNCTION могут:
Владелец хранимой функции;
Пользователи с привилегией ALTER ANY FUNCTION.
ALTER FUNCTION ADD_INT(A INT, B INT, C INT)
RETURNS INT
AS
BEGIN
RETURN A+B+C;
END
CREATE OR ALTER FUNCTIONСоздание новой или изменение существующей хранимой функции.
DSQL
CREATE OR ALTER FUNCTION funcname [(<inparam> [, <inparam> ...])] RETURNS <type> [COLLATE collation] [DETERMINISTIC] <routine-body> Подробнее см. CREATE FUNCTION.
Оператор CREATE OR ALTER FUNCTION создаёт новую или изменяет существующую хранимую функцию.Если хранимая функция не существует, то она будет создана с использованием предложения CREATE FUNCTION.Если она уже существует, то она будет изменена и перекомпилирована, при этом существующие привилегии и зависимости сохраняются.
|
Warning
|
Если у вас уже есть внешняя функция в Legacy стиле ( |
CREATE OR ALTER FUNCTION ADD_INT(A INT, B INT DEFAULT 0)
RETURNS INT
AS
BEGIN
RETURN A+B;
END
DROP FUNCTIONУдаление хранимой функции.
DSQL
DROP FUNCTION funcname
| Параметр | Описание |
|---|---|
funcname |
Имя хранимой функции. |
Оператор DROP FUNCTION удаляет существующую хранимую функцию.Если от хранимой функции существуют зависимости, то при попытке удаления такой функции будет выдана соответствующая ошибка.
Выполнить оператор DROP FUNCTION могут:
Владелец хранимой функции;
Пользователи с привилегией DROP ANY FUNCTION.
RECREATE FUNCTIONСоздание новой или пересоздание существующей хранимой функции.
DSQL
RECREATE FUNCTION funcname [(<inparam> [, <inparam> ...])] RETURNS <type> [COLLATE collation] [DETERMINISTIC] <routine-body> Подробнее см. CREATE FUNCTION
Оператор RECREATE FUNCTION создаёт новую или пересоздаёт существующую хранимую функцию.Если функция с таким именем уже существует, то оператор попытается удалить её и создать новую функцию.Операция закончится неудачей при подтверждении транзакции, если функция имеет зависимости.
|
Note
|
Имейте в виду, что ошибки зависимостей не обнаруживаются до фазы подтверждения транзакции. |
После пересоздания функции привилегии на выполнение хранимой функции и привилегии самой хранимой функции не сохраняются.
RECREATE FUNCTION ADD_INT(A INT, B INT DEFAULT 0)
RETURNS INT
AS
BEGIN
RETURN A+B;
END