В этом учебном пособии вы узнаете, как создавать и удалять процедуры в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
В SQL Server процедура представляет собой хранимую программу, в которую вы можете передавать параметры. Она не возвращает значение, как функция. Тем не менее, она может вернуть статус успеха / отказа в процедуру, вызвавшую ее.
Create Procedure
Вы можете создавать свои собственные хранимые процедуры в SQL Server (Transact-SQL). Давайте посмотрим поближе.
Синтаксис
Синтаксис Procedures в SQL Server (Transact-SQL):
[ @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).
Ниже приведен простой пример процедуры:
1 2 3 4 5 6 7 8 9 10 11 |
CREATE PROCEDURE FindSite @site_name VARCHAR(50) OUT AS BEGIN DECLARE @site_id INT; SET @site_id = 8; IF @site_id < 10 SET @site_name = 'yandex.com'; ELSE SET @site_name = 'google.com'; END; |
Эта процедура называется FindSite. Она имеет один параметр, называемый @site_name, который является выходным параметром, который обновляется на основе переменной @site_id.
Затем вы можете ссылаться на новую хранимую процедуру под названием FindSite следующим образом:
1 2 3 4 5 6 |
USE [test] GO DECLARE @site_name varchar(50); EXEC FindSite @site_name OUT; PRINT @site_name; GO |
Drop Procedure
После того, как вы создали свою процедуру в SQL Server (Transact-SQL), вам может понадобиться удалить ее из базы данных.
Синтаксис
Синтаксис удаления хранимой процедуры в SQL Server (Transact-SQL):
procedure_name - имя хранимой процедуры, которую вы хотите удалить.
Пример
Рассмотрим пример того, как удалить хранимую процедуру в SQL Server.
Например:
1 |
DROP PROCEDURE FindSite; |
Этот пример DROP PROCEDURE удалит хранимую процедуру под названием FindSite.