Кто может изменить функцию?
Выполнить оператор 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