Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
на айфон. ответа по бд.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
972.8 Кб
Скачать

46)Сценарии и пакеты в ms sql Server. Схемы бд.

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

Пакет – это средство группирования операторов T-SQL в виде одной логической единицы. Все операторы, которые содержатся в пакете, объединяются в один план выполнения, поэтому в процессе синтаксического анализа рассматриваются все операторы и все они успешно должны пройти проверку синтаксиса, так как в противном случае не будет выполнен ни один из операторов.

Чтобы разделить сценарий на несколько пакетов, можно воспользоваться оператором GO.

Оператор GO характеризуется описанными ниже особенностями.

  • оператор должен находиться на отдельной строке (на той же строке не должно быть больше ничего, за исключением комментариев);

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

Каждый пакет обрабатывается независимо от других пакетов, поэтому ошибка при выполнении одного пакета не исключает возможности успешного выполнения другого пакета.

Рассмотрим сценарий, в котором создается база данных вместе с некоторыми таблицами:

CREATE DATABASE Test

USE Test

CREATE TABLE TestTable

(coll int, col2 int)

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

Схема формально определяется как набор объектов в базе данных, объединенных общим пространством имен.

Оператор CREATE SCHEMA

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

Оператор ALTER SCHEMA

Данный оператор перенаправляет объект между различными схемами в одной и той же базе данных. Синтаксис оператора ALTER SCHEMA имеет следующий вид:

ALTER SCHEMA schema_name TRANSFER object_name

Оператор DROP SCHEMA удаляет схему из базы данных.

47)Триггеры.

Триггер - это хранимая процедура особого типа, вызываемая на выполнение в ответ на определенные события .

Триггеры подразделяются на два основных типа:

  • триггеры языка определения данных (Data Definition Language - DDL) и

  • триггеры языка манипулирования данными (Data Manipulation Language - DML).

Триггеры DDL активизируются в ответ на внесение каких-либо изменений в структуру базы данных теми или другими пользователями (под этим подразумеваются изменения, осуществляемые с помощью операторов CREATE, ALTER, DROP и т.п.). Триггеры этого типа были впервые введены в версии SQL Server 2005. Чаще всего триггеры DDL используются, если есть необходимость чрезвычайно строго следить за внесением изменений в структуру базы данных и регистрировать хронологию этих изменений.

Триггеры DML представляют собой фрагменты кода, которые закрепляются за конкретной таблицей или представлением.

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

В языке SQL предусмотрены три типа запросов, предназначенных для внесения изменений в данные. В связи с этим предусмотрены три основных типа триггеров, а также дополнительные типы, создаваемые с учетом одновременного возникновения и совпадения событий, обусловленных выполнением запросов этих типов:

  1. Триггеры INSERT,

  2. Триггеры DELETE,

  3. Триггеры UPDATE

  4. Триггеры, создаваемые с учетом одновременного возникновения и совпадения событий.

Синтаксис операторов создания триггеров во многом напоминает синтаксис всех прочих операторов CREATE, за одним исключением - в этом операторе должна быть указана таблица, за которой закрепляется триггер, поскольку триггер не может применяться отдельно от таблицы.

Синтаксис оператора CREATE TRIGGER:

CREATE TRIGGER <trigger name>

ON [<schema name>.]<table or view name>