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

24. Системные таблицы и получение метаданных.

Системные таблицы не должны изменяться непосредственно ни одним пользователем. Например, не пытайтесь изменять системные таблицы с помощью инструкций DELETE, UPDATE или INSERT либо с помощью пользовательских триггеров.

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

  • системные хранимые процедуры;

  • инструкции и функции языка Transact-SQL;

  • Управляющие объекты SQL Server (SMO)

  • объекты RMO;

  • функции каталога Database API.

Эти компоненты составляют опубликованные функции API для получения системных данных с SQL Server. Корпорация Майкрософт поддерживает совместимость этих компонентов от выпуска к выпуску. Формат системных таблиц зависит от внутренней архитектуры SQL Server и может изменяться от выпуска к выпуску. Поэтому приложениям, получающим непосредственный доступ к недокументированным столбцам системных таблиц, могут потребоваться изменения, прежде чем они смогут получить доступ к более поздней версии SQL Server.

В подразделах данного раздела описаны системные таблицы SQL Server.

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

системные хранимые процедуры;

инструкции и функции языка Transact-SQL;

Управляющие объекты SQL Server (SMO)

объекты RMO;

функции каталога Database API.

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

Пример:

SELECT TABLE_CATALOG,

TABLE_SCHEMA,

TABLE_NAME,

COLUMN_NAME,

DATA_TYPE,

CHARACTER_MAXIMUM_LENGTH

FROM pubs.INFORMATION_SCHEMA.columns

WHERE table_name = 'authors'

Эта процедура возвратит инфу обо всех столбцах таблицы authors.

25. Ограничение Primary Key и Unique. Сходства и различия. Способы создания. Просмотр результатов работы. Примеры

Когда к существующему столбцу (или столбцам) таблицы добавляется ограничение PRIMARY KEY, происходит проверка данных, для удовлетворения условии:

- отсутствие пустых значений;

- Отсутствие повторяющихся значений.

Следующий оператор CREATE TABLE создает таблицу Table1 и определяет в качестве ее первичного ключа столбец Coll:

Create Table Table1

(

Col1 INT PRIMARY KEY,

Col2 VARCHAR(30)

)

Чтобы модифицировать ограничение PRIMARY KEY с помощью TransactSQL, сначала следует удалить существующее определение ограничения PRIMARY KEY, а затем создать новое определение. Еще один способ - добавить ограничение PRIMARY KEY к существующей таблице с помощью оператора ALTER TABLE:

Alter Table Table1

Add ConstraInt table_pk Primary Key (Col1)

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

Если ограничение UNIQUE уже существует, оно может быть изменено или удалено.

CREATE TABLE Customers

(Snum integer UNIQUE NOT NULL,

Sname char (10) UNIQUE NOT NULL,

city char (10),

comm decimal);

PRIMARY KEY по сути альтернатива — UNIQUE. Только UNIQUE легко допускает ввод неопределенных значений и допускается добавления множества ограничений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]