Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Изменение данных

Для изменения данных можно использовать различные методы, включая удаление и повторную вставку строк. Чаще всего изменение данных производится с помо­щью команды UPDATE, позволяющей выполнять как простое обновление данных в колонке, так и сложные операции модификации данных во множестве строк таблицы. Если при обновлении строк необходимо реализовать сложный алгоритм, то можно создать хранимые процедуры, которые будут содержать всю логику обновления. Пользователю не придется всякий раз, когда необходимо выполнить обновление, восстанавливать заново сложные фрагменты кода. Приведем синтаксис команды UPDATE:

UPDATE

{

table_name

[WITH (<table_int_limited> [...n])]

| view_name rowset_function_limited}

SET

{column_name = {expression | DEFAULT | NULL}

| @variable = expression

| @variable = column = expression } [..n]

{{[FROM {<table_source>} [..n] ]

[WHERE

<search_condition>] }

С ключевого слова SET начинается блок, к которому определяется список переменных. Команда UPDATE позволяет изменять не только колонки таблицы.

За один вызов UPDATE можно изменить несколько колонок во множестве строк одной таблицы. Для каждой колонки нужно определить значение, которое она примет после выполнения изменения. С помощью ключевого слова DEFAULT можно присвоить колонке значение, определенное для нее по умолчанию. Можно также установить для колон­ки значение NULL. Если необходимо установить определенное значение, следует указать константу, переменную или выражение. Изменению подвергнутся все строки, удовлетворяющие критериям ограничения области действия команды UPDATE, которые задаются с помощью ключевого слова WHERE. При составлении выражения можно ссылаться на любые колонки таблицы, включая изменяемые.

Хранимые процедуры имеют очень много общего с обычными процедурами, широко используемыми в различных языках программирования. В частности, это касается процесса создания хранимых процедур. Прежде всего, пользователю необходимо определить хранимую процедуру. Определение хранимой процедуры заключается в исполнении следующей команды:

CREATE PROCEDURE procedure_name [;number]

[ {^parameter data_type} [VARYING] [= default] [OUTPUT] ] [,...n]

[WITH

{ RECOMPILE

| ENCRYPTION

| RECOMPILE. ENCRYPTION } ]

[FOR REPLICATION]

AS

sql_statement [...n]

Рассмотрим синтаксис данной команды более подробно. Параметры и ключевые слова, используемые при определении процедуры, имеют следующее назначение:

procedure_name – имя создаваемой процедуры. Используя префиксы sp_, # и ##, можно определить создаваемую процедуру как системную или временную. При этом, однако, необходимо позаботиться и о размещении процедуры в соответствующей системной базе данных, поскольку команда CREATE PROCEDURE создает хранимую процедуру в текущейбазе данных. Поэтому перед созданием процедуры необходимо выполнить команду USE, чтобы сделать требуемую базу данных текущей;

number – параметр определяет идентификационный номер хранимой процедуры, однозначно определяющий ее в группе процедур;

^parameter – определяет имя параметра, который будет использоваться создаваемой хранимой процедурой для передачи входных или выходных данных. Параметры, определяемые при создании хранимой процедуры, являются локальными переменными, поэтому несколько хранимых процедур могут иметь абсолютно идентичные параметры;

data_type – определяет, к какому типу данных должны относиться значения параметра описываемой процедуры. Для определения параметров можно использовать любые типы данных;

OUTPUT – использование этого ключевого слова определяет указанный па­раметр как выходной;

VARYING – ключевое слово, которое используется совместно с параметром, относящимся к типу данных cursor. Определяет, что в качестве выходного параметра будет представлено результирующее множество;

default – позволяет определить для параметра значение по умолчанию, которое хранимая процедура будет использовать в случае, если при ее вызове указанный параметр был опущен.

RECOMPILE – ключевое слово, предписывающее системе создавать план выполнения процедуры при каждом ее вызове;

FOR REPLICATION – процедура, определенная с использованием данного ключевого слова, предназначена исключительно для осуществления процесса репликации. Вы не можете сочетать это ключевое слово с ключевым словом WITH RECOMPILE;

ENCRYPTION – если при определении процедуры было использовано данное ключевое слово, то текст процедуры непосредственно перед записью в системную таблицу syscomments будет зашифрован. Вы можете прибегнуть к шифрованию, если необходимо скрыть от пользователя особенности реализации хранимой процедуры;

AS – ключевое слово, определяющее начало кода хранимой процедуры. После этого ключевого слова следуют команды Transact-SQL, которые и составляют непосредственно телопроцедуры (sql_statement). Здесь можно использовать любые команды, включая вызов других хранимых процедур, за исключением команд, начинающихся с ключевого слова CREATE.

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




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 605; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.