Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы ГЭК (для заочников).doc
Скачиваний:
53
Добавлен:
26.04.2019
Размер:
348.67 Кб
Скачать

33. Изменение данных в таблице средствами t-sql. Команда update.

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

UPDATE

{

tablejiame

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

| viewjiame rowset_function_limited

SET

{colimin_name = {expression | DEFAULT | NULL}

| @variable = expression

| Invariable = column = expression } [,...n]

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

[WHERE

<search_condition>] }

I

[WHERE CURRENT OF

{ { [GLOBAL] cursorjiame } | cursor_vanable_name}

] }

[OPTION (<query_hint> [,...n] )]

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

34. Удаление данных средствами t-sql. Команда delete. (глава 25 – Управление данными; Раздел «Удаление данных» с.800-801)

35. Хранимые процедуры. Этапы создания (Глава 26 – Хранимые процедуры; Раздел «Создание хранимых процедур» с. 803-804).

36. Создание, модификация и удаление хранимых процедур средствами t-sql.

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

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

Одним из достоинств хранимых процедур является возможность их многократной модификации без необходимости изменения кода использующих их приложений. Наиболее удобный способ изменения кода хранимой процедуры предоставляет утилита Enterprise Manager. Для этого достаточно дважды щелкнуть на требуемой процедуре и в появившемся окне (см. рис. 26.1) отредактировать ее код. Когда все изменения будут сделаны, достаточно нажать на кнопку Check Syn­tax и, если проверка синтаксиса пройдет успешно, подтвердить изменения.

Чтобы модифицировать хранимую процедуру только средствами Transact-SQL, используется команда ALTER PROCEDURE. Параметры этой команды полностью идентичны аналогичным параметрам команды CREATE PROCEDURE. По сути дела, мы просто переопределяем хранимую процедуру. Это равносильно тому, как если бы мы уничтожили хранимую процедуру, а затем создали ее заново. Но, в отличие от подобного подхода, изменение хранимой процедуры посредством команды ALTER PROCEDURE заключается в том, что при этом сохраняются все предоставленные ранее разрешения на использование этой процедуры.

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

Можно удалить хранимую процедуру непосредственно в Enterprise Manager либо воспользоваться следующей командой Transact-SQL:

DROP PROCEDURE {procedure} [,...n]

Процедура будет немедленно удалена. Это означает, что будут удалены запись о ее имени из таблицы sysobjects и текст кода процедуры из таблицы syscomments.