русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор DELETE


Дата добавления: 2013-12-23; просмотров: 1617; Нарушение авторских прав


Оператор UPDATE

Оператор ALTER TABLE

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

ALTER TABLE имя таблицы


ADD | DROP имя_столбца тип_данных [NULL | NOT 1>NULL] [CONSTRAINTS] ,
ADD I DROP имя_столбца тип_данных [NULL|NOT 4>NULL] [CONSTRAINTS] ,

 

Операторобновляет одну или несколько строк таблицы.

UPDATE имя_таблицы SET имя_столбца = значение, [WHERE ...];

UPDATE ( column )

Аргументы

column

Это имя столбца для проверки на действие INSERT или UPDATE. Так как имя столбца указано в предложении триггера ON, не ставьте имя таблицы перед именем столбца. Столбец может содержать любой тип данных, поддерживаемый SQL Server 2005. Однако вычисляемые столбцы не могут использоваться в данном контексте.

Типы возвращаемых данных

Boolean

Замечания

Функция UPDATE() возвращает TRUE независимо от того, была ли попытка применить операторы INSERT или UPDATE удачной.

Чтобы проверить действие операторов INSERT или UPDATE для нескольких столбцов, укажите отдельно предложение UPDATE(column), следующее за первым предложением. Несколько столбцов также могут быть проверены на действие INSERT или UPDATE при помощи COLUMNS_UPDATED. В результате возвращается битовый шаблон, который указывает на то, какие столбцы были вставлены или обновлены.

IF UPDATE возвращает значение TRUE по действиям оператора INSERT, так как столбцы содержат либо явные вставленные значения, либо неявные вставленные значения (NULL).

UPDATE(column) может применяться в любой части тела триггера Transact-SQL.

Примеры

Следующий пример создает триггер, который выдает сообщение клиенту при попытке обновить столбец StateProvinceID или PostalCode в таблице Address.

USE AdventureWorks;



GO

IF EXISTS (SELECT name FROM sys.objects

WHERE name = 'reminder' AND type = 'TR')

DROP TRIGGER Person.reminder;

GO

CREATE TRIGGER reminder

ON Person.Address

AFTER UPDATE

AS

IF ( UPDATE (StateProvinceID) OR UPDATE (PostalCode) )

BEGIN

RAISERROR (50009, 16, 10)

END;

GO

-- Test the trigger.

UPDATE Person.Address

SET PostalCode = 99999

WHERE PostalCode = '12345';

GO

 

 

Оператор удаляет одну или несколько строк таблицы

DELETE FROM имя_таблицы [WHERE ...];

[ WITH <common_table_expression> [ ,...n ] ]

DELETE

[ TOP ( expression ) [ PERCENT ] ]

[ FROM ]

{ table_name [ WITH ( <table_hint_limited> [ ...n ] ) ]

| view_name

| rowset_function_limited

| table_valued_function

}

[ <OUTPUT Clause> ]

[ FROM <table_source> [ ,...n ] ]

[ WHERE { <search_condition>

| { [ CURRENT OF

{ { [ GLOBAL ] cursor_name }

| cursor_variable_name

}

]

}

}

]

[ OPTION ( <Query Hint> [ ,...n ] ) ]

[; ]

 

<object> ::=

{

[ server_name.database_name.schema_name.

| database_name. [ schema_name ] .

| schema_name.

]

table_or_view_name

}

Аргументы

WITH <common_table_expression>

Задает временный именованный результирующий набор, также называемый обобщенным табличным выражением, который определяется в области действия инструкции DELETE. Результирующий набор получается из инструкции SELECT.

Обобщенные табличные выражения также можно использовать в инструкциях SELECT, INSERT, UPDATE и CREATE VIEW..

TOP ( expression ) [ PERCENT ]

Задает число или процент случайных строк для удаления. Выражение expression может быть либо числом, либо процентом строк. Строки, на которые ссылается выражение TOP, используемое с инструкциями INSERT, UPDATE и DELETE, не упорядочиваются.

Разделение круглыми скобками выражения expression в выражении TOP требуется в инструкциях INSERT, UPDATE и DELETE.

FROM

Необязательное ключевое слово, которое можно использовать между ключевым словом DELETE и целевым аргументом table_or_view_name или rowset_function_limited.

server_name

Имя сервера (с использованием имени связанного сервера или функции OPENDATASOUTCE в качестве имени сервера), на котором расположена таблица или представление. Если аргумент server_name указывается, аргументы database_name и schema_name обязательны.

database_name

Имя базы данных.

schema_name

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

table

Имя таблицы, из которой удаляются строки.

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

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

Задает одну или несколько табличных подсказок, разрешенных для целевой таблицы. Ключевое слово WITH и круглые скобки обязательны. Использование ключевых слов NOLOCK и READUNCOMMITTED запрещено..

view_name

Имя представления, из которого удаляются строки.

Представление, на которое ссылается аргумент view_name , должно быть обновляемым и ссылаться ровно на одну базовую таблицу в предложении FROM данного представления..

rowset_function_limited

Функция OPENQUERY или OPENROWSET в зависимости от возможностей поставщика.

table_valued_function

Может быть возвращающей табличное значение функцией.

<OUTPUT_Clause>

Возвращает удаленные строки или выражения, основанные на них, как часть операции DELETE. Предложение OUTPUT не поддерживается ни в каких инструкциях DML, направленных на представления и удаленные таблицы..

FROM <table_source>

Задает дополнительное предложение FROM. Это расширение языка Transact-SQL для инструкции DELETE позволяет задавать данные из <table_source> и удалять соответствующие строки из таблицы в первом предложении FROM.

Это расширение, в котором задается соединение, может быть использовано вместо вложенного запроса в предложении WHERE для указания удаляемых строк.

WHERE

Указывает условия, используемые для ограничения числа удаляемых строк. Если предложение WHERE не указывается, инструкция DELETE удаляет все строки из таблицы.

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

· Операции удаления с поиском указывают условие поиска для уточнения строк, которые будут удалены. Например, WHERE column_name = value.

· Операции удаления по позиции используют предложение CURRENT OF для указания курсора. Удаление осуществляется в текущей позиции курсора. Эта операция может быть более точной, чем инструкция DELETE по найденному, которая использует предложение WHERE search_condition для указания удаляемых строк. Инструкция DELETE по найденному удаляет несколько строк, если условие поиска не определяет уникально одну строку.

<search_condition>

Указывает ограничивающие условия для удаляемых строк. Количество предикатов, которое может содержать условие поиска, не ограничено.

CURRENT OF

Указывает выполнение инструкции DELETE в текущей позиции указанного курсора.

GLOBAL

Указывает, что аргумент cursor_name ссылается на глобальный курсор.

cursor_name

Имя открытого курсора, из которого производится выборка. Если существует как глобальный, так и локальный курсор с именем cursor_name, то, когда указывается GLOBAL, этот аргумент указывает на глобальный курсор; в противном случае — на локальный курсор. Курсор должен позволять производить обновления.

cursor_variable_name

Имя переменной курсора. Переменная курсора должна содержать ссылку на курсор, обновления которого разрешены.

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

Ключевые слова, показывающие, что подсказки оптимизатора применяются при настройке способа обработки инструкции компонентом Database Engine..

Замечания

Инструкцию DELETE можно использовать в теле пользовательской функции, если изменяемым объектом является переменная table.

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

В случае арифметической ошибки (переполнение, деление на ноль или выход за пределы допустимых значений), возникающей в ходе вычисления выражения при выполнении инструкции DELETE, компонент Database Engine будет обрабатывать эти ошибки, как если бы параметр SET ARITHABORT имел значение ON. Оставшаяся часть пакетной операции отменяется и возвращается сообщение об ошибке.

Значение параметра SET ROWCOUNT не учитывается в инструкциях DELETE для удаленных таблиц и локальных и удаленных секционированных представлений.

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

 



<== предыдущая лекция | следующая лекция ==>
Оператор INSERT | Оператор CREATE INDEX


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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