В этом учебном пособии вы узнаете, как создавать и удалять функции в SQL Server (Transact-SQL) с помощью синтаксиса и примеров.
Описание
В SQL Server функция представляет собой хранимую программу, в которую вы можете передавать параметры и возвращать значение.
Create Function
Вы можете создавать свои собственные функции в SQL Server (Transact-SQL). Давайте рассмотрим подробнее.
Синтаксис
Синтаксис Functions в SQL Server (Transact-SQL):
( [ @parameter [ AS ] [type_schema_name.] datatype
[ = default ] [ READONLY ]
, @parameter [ AS ] [type_schema_name.] datatype
[ = default ] [ READONLY ] ]
)
RETURNS return_datatype
[ WITH { ENCRYPTION
| SCHEMABINDING
| RETURNS NULL ON NULL INPUT
| CALLED ON NULL INPUT
| EXECUTE AS Clause ]
[ AS ]
BEGIN
[declaration_section]
executable_section
RETURN return_value
END;
Параметры или аргументы
schema_name - имя схемы, которой принадлежит эта функция.
function_name - наименование функции в SQL Server.
@parameter - один или несколько параметров, которые передаются в функцию.
type_schema_name - схема, которая владеет типом данных, если это применимо.
datatype - тип данных для @parameter.
default - значение по умолчанию для назначения параметру @parameter.
READONLY - это означает, что @parameter не может быть перезаписана функцией.
return_datatype - тип данных возвращаемого значения функции.
ENCRYPTION - это означает, что источник для функции не будет сохранен как обычный текст в системных представлениях SQL Server.
SCHEMABINDING - это означает, что базовые объекты не могут быть изменены, чтобы влиять на функцию.
RETURNS NULL ON NULL INPUT - это означает, что функция вернет NULL, если любые параметры имеют значение NULL, без необходимости выполнять функцию.
CALL ON NULL INPUT - это означает, что функция будет выполняться, даже если любые параметры имеют NULL.
EXECUTE AS - устанавливает контекст безопасности для выполнения функции.
return_value - значение, возвращаемое функцией.
Пример
Рассмотрим пример создания функции в SQL Server (Transact-SQL).
Ниже приведен простой пример функции:
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE FUNCTION ReturnSite ( @site_id INT ) RETURNS VARCHAR(50) AS BEGIN DECLARE @site_name VARCHAR(50); IF @site_id < 10 SET @site_name = 'yandex.com'; ELSE SET @site_name = 'google.com'; RETURN @site_name; END; |
Эта функция называется ReturnSite. Она имеет один параметр, называемый @site_id, который является типом данных INT. Функция возвращает значение VARCHAR (50), указанное в предложении RETURNS.
Затем вы можете ссылаться на новую функцию ReturnSite следующим образом:
1 2 3 4 |
USE [test] GO SELECT dbo.ReturnSite(8); GO |
Drop Function
После того, как вы создали свою функцию в SQL Server (Transact-SQL), вам может понадобиться удалить ее из базы данных.
Синтаксис
Синтаксис удаелния функции в SQL Server (Transact-SQL):
function_name - имя функции, которую вы хотите удалить.
Пример
Рассмотрим пример того, как удалить функцию в SQL Server.
Например:
1 |
DROP FUNCTION ReturnSite; |
Этот пример DROP FUNCTION удалит функцию ReturnSite.