Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Создает хранимую процедуру 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!