Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

К9-12В. Вопросы и ответы к ГОСам 2013 / Базы данных / 09. Представления и временные таблицы. Сравнение. Примеры использования представлений

..docx
Скачиваний:
76
Добавлен:
10.05.2014
Размер:
60.48 Кб
Скачать

09. Представления и временные таблицы. Сравнение. Примеры использования представлений.

Создание представлений

CREATE VIEW имя_представления [(имя_колонки, …)] AS запрос

имя_представления – именует представление

имя_колонки – именует колонку представления.

AS – указывает начало определения представления.

запрос – определяет представление.

CREATE VIEW MA_PROJ

AS

SELECT * FROM PROJECT

WHERE SUBSTR(ProjNo, 1, 2) = ’MA’

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

Чтобы таблица стала временной локально видимой, перед именем нужно поставить символ #, например, в следующем примере создается временная таблица #TestTable с одним только полем идентификатором, который является первичным ключом:

CREATE TABLE #TestTable

(

id INT PRIMARY KEY

)

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

Попробуйте создать таблицу. Теперь попробуйте получить все данные из таблицы с помощью запроса:

SELECT * FROM #TestTable

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

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

CREATE TABLE ##TestTable

(

id INT PRIMARY KEY

)

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

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

Соседние файлы в папке Базы данных