Procedures SQL Server

В этом учебном пособии вы узнаете, как создавать и удалять процедуры в SQL Server (Transact-SQL) с синтаксисом и примерами.

Описание

В SQL Server процедура представляет собой хранимую программу, в которую вы можете передавать параметры. Она не возвращает значение, как функция. Тем не менее, она может вернуть статус успеха / отказа в процедуру, вызвавшую ее.

Create Procedure

Вы можете создавать свои собственные хранимые процедуры в SQL Server (Transact-SQL). Давайте посмотрим поближе.

Синтаксис

Синтаксис Procedures в SQL Server (Transact-SQL):

CREATE { PROCEDURE | PROC } [schema_name.]procedure_name
[ @parameter [type_schema_name.] datatype
[ VARYING ] [ = default ] [ OUT | OUTPUT | READONLY ]
, @parameter [type_schema_name.] datatype
[ VARYING ] [ = default ] [ OUT | OUTPUT | READONLY ] ]
[ WITH { ENCRYPTION | RECOMPILE | EXECUTE AS Clause } ]
[ FOR REPLICATION ]
AS
BEGIN
[declaration_section]
executable_section
END;

Параметры или аргументы

schema_name - имя схемы, которой принадлежит хранимая процедура.
procedure_name - имя для назначения этой процедуры в SQL Server.
@parameter - один или несколько параметров передаются в процедуру.
type_schema_name - схема, которая владеет типом данных, если это применимо.
Datatype - тип данных для @parameter.
VARYING - задается для параметров курсора, когда результирующий набор является выходным параметром.
default - значение по умолчанию для назначения параметру @parameter.
OUT – это означает, что @parameter является выходным параметром.
OUTPUT - это означает, что @parameter является выходным параметром.
READONLY - это означает, что @parameter не может быть перезаписана хранимой процедурой.
ENCRYPTION - это означает, что источник хранимой процедуры не будет сохранен как обычный текст в системных представлениях SQL Server.
RECOMPILE - это означает, что план запросов не будет кэшироваться для этой хранимой процедуры.
EXECUTE AS - устанавливает контекст безопасности для выполнения хранимой процедуры.
FOR REPLICATION - Это означает, что хранимая процедура выполняется только во время репликации.

Пример

Рассмотрим пример создания хранимой процедуры в SQL Server (Transact-SQL).
Ниже приведен простой пример процедуры:

Эта процедура называется FindSite. Она имеет один параметр, называемый @site_name, который является выходным параметром, который обновляется на основе переменной @site_id.

Затем вы можете ссылаться на новую хранимую процедуру под названием FindSite следующим образом:

Drop Procedure

После того, как вы создали свою процедуру в SQL Server (Transact-SQL), вам может понадобиться удалить ее из базы данных.

Синтаксис

Синтаксис удаления хранимой процедуры в SQL Server (Transact-SQL):

DROP PROCEDURE procedure_name;

procedure_name - имя хранимой процедуры, которую вы хотите удалить.

Пример

Рассмотрим пример того, как удалить хранимую процедуру в SQL Server.
Например:

Этот пример DROP PROCEDURE удалит хранимую процедуру под названием FindSite.