Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

SQL Server 2012. Создает хранимую процедуру Transact-SQL или хранимую процедуру CLR в SQL Server 2012



Создает хранимую процедуру Transact-SQL или хранимую процедуру CLR в SQL Server 2012. Хранимые процедуры похожи на процедуры из других языков программирования в том, что они могут:

· они обрабатывают входные параметры и возвращают вызывающей процедуре или пакету значения в виде выходных параметров;

· они содержат программные инструкции, которые выполняют операции в базе данных, в том числе вызывающие другие процедуры;

· они возвращают значение состояния вызывающей процедуре или пакету, таким образом передавая сведения об успешном или неуспешном завершении (и причины последнего).

Используйте эту инструкцию для создания постоянной процедуры в текущей базе данных или временной процедуры в базе данных tempdb.

Синтаксические обозначения в Transact-SQL

Синтаксис

--Transact-SQL Stored Procedure SyntaxCREATE { PROC | PROCEDURE } [schema_name.] procedure_name [; number ] [ { @parameter [ type_schema_name. ] data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT | [READONLY] ] [,...n ][ WITH <procedure_option> [,...n ] ][ FOR REPLICATION ]AS { [ BEGIN ] sql_statement [;] [...n ] [ END ] }[;] <procedure_option>::= [ ENCRYPTION ] [ RECOMPILE ] [ EXECUTE AS Clause ]--CLR Stored Procedure SyntaxCREATE { PROC | PROCEDURE } [schema_name.] procedure_name [; number ] [ { @parameter [ type_schema_name. ] data_type } [ = default ] [ OUT | OUTPUT ] [READONLY] ] [,...n ] [ WITH EXECUTE AS Clause ]AS { EXTERNAL NAME assembly_name.class_name.method_name }[;]

Аргументы

schema_name

Имя схемы, которой принадлежит процедура. Процедуры привязаны к схеме. Если имя схемы не указано при создании процедуры, то автоматически назначается схема по умолчанию для пользователя, который создает процедуру.

procedure_name

Имя процедуры. Имена процедур должны соответствовать требованиям, предъявляемым к идентификаторам, и должны быть уникальными в схеме.

При задании имен для процедур не следует пользоваться префиксом sp_. Этим префиксом в SQL Server обозначаются системные процедуры. Использование этого префикса может нарушить работу кода приложения, если обнаружится системная процедура с таким же именем.

Локальную или глобальную временную процедуру можно создать, указав один символ номера (#) перед именем procedure_name (#procedure_name) для локальных временных процедур и два символа номера для глобальных временных процедур (##procedure_name). Локальная временная процедура видима только соединению, которое создало процедуру, и удаляется, когда это соединение закрывается. Глобальная временная процедура доступна для всех соединений и удаляется при завершении последнего сеанса, в котором она использовалась. Для процедур CLR нельзя задавать временные имена.

Полное имя процедуры или глобальной временной процедуры не может содержать более 128 символов (с учетом символов ##). Полное имя локальной временной процедуры с учетом символа # не может содержать более 116 символов.

; number

Необязательный целочисленный аргумент, используемый для группирования одноименных процедур. Все сгруппированные процедуры можно удалить, выполнив одну инструкцию DROP PROCEDURE.

Примечание
В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

В нумерованных процедурах нельзя использовать определяемые пользователем типы данных xml и CLR, и их нельзя использовать в структуре плана.

@ parameter

Параметр, объявленный в процедуре. Укажите имя параметра, начинающееся со знака @. Имя параметра должно соответствовать правилам дляидентификаторов. Параметры являются локальными в пределах процедуры; в разных процедурах могут быть использованы одинаковые имена параметров.

Можно объявить от 1 до 2100 параметров. При выполнении процедуры значение каждого из объявленных параметров должно быть указано пользователем, если для параметра не определено значение по умолчанию или значение не задано равным другому параметру. Если процедура содержит возвращающие табличное значение параметры, а в вызове отсутствует параметр, передается пустая таблица. Параметры могут использоваться только в качестве выражений-констант; они не могут использоваться вместо имен таблиц, столбцов или других объектов базы данных. Дополнительные сведения см. в разделе EXECUTE (Transact-SQL).

Параметры не могут быть объявлены, если указан параметр FOR REPLICATION.

[ type_schema_name. ] data_type

Тип данных параметра и схема, к которой принадлежит этот тип.

Рекомендации по процедурам Transact-SQL.

· Все типы данных Transact-SQL можно использовать в качестве параметров.

· Для создания возвращающих табличное значение параметров можно использовать определяемый пользователем табличный тип. Возвращающие табличное значение параметры могут быть только ВХОДНЫМИ и должны сопровождаться ключевым словом READONLY. Дополнительные сведения см. в разделе Использование параметров, возвращающих табличные значения (компонент Database Engine).

· Типы данных cursor могут быть только ВЫХОДНЫМИ параметрами и должны сопровождаться ключевым словом VARYING.





Дата публикования: 2015-02-03; Прочитано: 259 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...