double arrow

Использование триггеров.


  1. При использовании каскадного изменения данных в связанных таблицах.
  2. Когда недостаточно ограничения целостности.
  3. Когда необходимо создать и вывести сообщение об ошибках.
  4. Когда становится возможной поддержка денормализованных данных.

 

Правила использования триггеров.

1. Срабатывает сразу же после некоторого действия в отличии от ограничений.

2. Срабатывает при выполнении трех операторов insert, delete, update.

3. Перед выполнением транзакций происходит проверка операторов ограничений.

4. Для одной операции в таблице может быть определенно несколько триггеров. В случае нескольких операторов (триггеров) порядок не задается.

5. Нельзя создавать для временных таблиц и представлений. Но можно использовать при обращении к временным таблицам.

6. Не должны возвращать наборы результатов.

7. Может обрабатывать действия затрагивающие несколько записей. Определить количество с помощью функции @@rowcount.

8. Создание при помощи Transact SQL следующим образом:

create trigger имя

on имя_таблицы

{for {insert/delete/update}}

As

              тело триггера

9. Не может включать операции create/alter/drop. Предоставляет доступ и возможность создания учетных записей.




10. Просмотр при помощи хранимых процедур.

Sp_helptext имя_триггера выводит код триггера в случае если не защищено

Sp_depends имя_триггера выводит список родительских объектов

Sp_helptrigger имя_триггера выводит список триггеров для данной таблицы

 

Изменение триггеров при помощи Alter. Удалении при помощи Drop.

 

Принцип работы триггеров.

 

Insert:

 

Последовательность выполнения такова – оператор Insert выполняется в таблице с триггером Insert; выполнение оператора Insert регистрируется в журнале; триггер срабатывает и выполняет его операторы; новые записи добавляются в таблицу триггера и таблицу Insert вставок. Таблица вставок – логическая таблица с копиями. Таблица вставок хранит все изменения оператора Insert. Позволяет ссылаться на вставленные данные в соответствующем триггере. Триггер Insert исполняется как единая транзакция, выполняется быстрее, чем хранимая процедура или команды SQL.

Объектная модель ADO.NET

 

ADO.NET – основная модель доступа к данным для приложений, основанных на Microsoft .NET. Не является развитием более ранней технологии ADO. Скорее представляет собой совершенно самостоятельную технологию. Компоненты ADO.NET входят в поставку оболочки .NET Framework; таким образом, ADO.NET является одной из главных составных частей .NET.

 

Существует проблема: если приложение ASP.NET создаем с помощью ADO.NET, загружаем клиенту сотни мегабайт в виде схемы данных, таблиц. Все будет должным образом работать тогда, когда скорость подключения высокая, если скорости недостаточно или емкость каналов связи мала, то система выдает ошибку. Надо следить, чтобы передаваемые от сервера к клиенту данные были небольшого объема.



 

В ADO .NET используется модель доступа – доступ к отсоединенным данным. При этом соединение устанавливается лишь на то время, которое необходимо для проведения определенной операции над базой данных.

DataSet - это специализированный объект, содержащий образ базы данных.

DataSet состоит из объектов типа DataTable и объектов DataRelation.

Для осуществления взаимодействия между DataSet и источником данных используется объект типа DataAdapter.

DataAdapter содержит метод Fill() для обновления данных из базы и заполнения DataSet.

Объект DBConnection осуществляет связь с источником данных.

Объект DBCommand позволяет послать базе данных команду (как правило, команду SQL или хранимую процедуру).







Сейчас читают про: