Программирование баз данных MS SQL Server (1084479), страница 41
Текст из файла (страница 41)
А теперь в качестве иллюстрации к использованию этого компонента дополним предыдущий пример. Если требуется осуществить выборку информации с сервера, для которого создана связь, называемая МуБехчех, из таблицы МуТаЬ1е базы данных МусасаЬаяе, принадлежащей схеме МуБспева,то полностью уточненное имя таблицы принимает вид МуБехчех.МуРасаЬаяе.МуБспева.МуТаЬ1е. Значения компонентов полностью уточненного имени таблицы, применяемые по умолчанию Еще раз рассмотрим и уточним, какие значения применяются по умолчанию на каждом уровне иерархии именования таблицы справа налево, как описано ниже. 0 ОЬ)есснаве.
Значение по умолчанию отсутствует; имя объекта должно быть задано явно. 0 ОипехяЬ1р. Этот компонент может оставаться незаданным; в таком случае СУБД вначале предпринимает попытку определить значение компонента с использованием имени текущего пользователя, а затем, если объект с указанным именем не существует в той схеме, владельцем которой является текущий пользователь, то предпринимается попытка найти объект в схеме, владельцем которой служит пользователь оЬо. П ОасаЬаяенаве.
Этот компонент имени также может быть исключен, при условии, что не задан Бехчехнаве. Если же компонент Бехчехнаве применяется, то для СУБД БСп' Бегчег должен быть указан и компонент ОасаЬаяенаве (в СУБД других типов могут предъявляться другие требования, в зависимости от конкретного типа СУБД). 0 Бехчехнаве. В качестве этого компонента должно быть указано имя связанного сервера, но чаще всего компонент остается не заданным, в результате чего СУБД Б(,1(. Беггег применяет по умолчанию тот сервер, на котором зарегистрировался пользователь.
Если нет необходимости указывать владельца объекта, но все еще требуется предоставить информацию, касающуюся базы данных или сервера, то все равно необходимо предусмотреть использование лишней точки (. ) в той позиции, где должен быть указан владелец. Например, если пользователь зарегистрировался на локальном сервере и указал, что будет использовать базу данных Мохспиупо, а затем решил обратиться к таблице Охсехя базы данных Мохспиупб на связанном сервере МуОХЬехБехчех, то он может указать имя этой таблицы как МуОХЬехБехчех. МохХЬи1пб..Охбехя. Поскольку в этом имени не задан компонент, определяющий конкретное имя владельца, то предполагается, что для определения владельца требуемого объекта (в данном случае таблицы Охоехя) в качестве компонента должен использоваться либо идентификатор пользователя, с которым он зарегистрировался на связанном сервере, либо имя с|Ьо (причем проверка возможных применяемых имен производится именно в указанном порядке).
168 Глава 5 Оператор сати К сожалению, создание объектов базы данных относится к числу наиболее трудных задач администрирования данных. Прежде всего для успешного создания объектов необходимо тщательно соблюдать установленный синтаксис.
Оператором создания объектов является СВЕАТЕ. Рассмотрим полную структуру оператора СВЕАТЕ, начиная с его наиболее обобщенной формы. Эта форма одинаково присуща операторам СВЕАТЕ, предназначенным для создания всевозможных объектов базы данных, а различия обнаруживаются только в деталях.
Первая часть оператора СВЕАТЕ всегда выглядит таким образом: СВЕАТЕ <оЬ]есС Суре> <оьуесС паве> За этой частью следуют дополнительные уточнения, состав которгях зависит от типа создаваемого объекта. Оператор свжътж и~тлвмж Предположим, что необходимо создать базу данных АОСОООСЕОО, которая в дальнейшем будет использоваться для создания таблиц.
Наиболее простая синтаксическая форма оператора СВЕАТЕ ОАТАЕАЯЕ выглядит, как в приведенном выше примере: СВЕАТЕ ОАТАВАЯЕ <СаСаЬаяе паве> с)ле>'(>ет отметить;-что::к"вновь сдздднвому)объект)[)никто,-не'имеет::доступе) х(]оме'соз- дана)его';ег]о'почльзсв4)еля,','ад>ми>ййстртатора бдзы данных."и-слахельцйбазы данник<(если) СОЗ>даНИ<М>М:.ОбнсагтОМ,б)йяа бава;дайНЫХ, ТО)ГВКОВЫМ:;,СтаНОВИтоя'-'Ссадаащ<нй,ЕЕ;П<О>ЛЬаОВЗ- ' те>ЛЬ)ОС[ТО,позволя)ет,: Соадсвать':Сбвекгы,, беспрсеплтотаеННРВ<ыпо)лизать: асю'необходимую . Кд()[)ахтИргс>ВКуя='Нао]]ЗСя)Хат ИТСЛЬХО йССЛЕ'ЕтОц < ПрвдОСТЕВЛИГЬдгаотуцх'ВНОВЬВ((адайНЫМ о<бьектам другим"пользовехалям, йасбХОСД<]ЯМ>о)таял[а:УкаеатЬ:,:ХтОЯ 'С>ЛЕ[]атОР С>Е(ВАТЕ'-'МОХ[ат ЙСССЛЬЕОВатЬСЯ ТОЛЬХО 'ДЛЯ ССЗДа- ййяОбЪСКтОД 6ВЗЬ[ ДаННЫХНа[ЛОК)ВЛЬНС]аЯ СЕРВЕрв (ПОПЫП[а ухаэаЯТЬ ХОНКрвтНОЕ ИМя Сараара-окаичиеасетси))(йудачей), Если оператор СВЕАТЕ используется в приведенной выше форме, это приводит к созданию базы данных, полностью аналогичной базе данных вопе1 (напомним, что база данных вос[е1 рассматривалась в главе 1).
Тем не менее в действительности всегда требуется ввести какие-либо дополнительнгае уточнения, касаюп)иеся структуры базы данных. Для этой цели применяется полный синтаксис оператора СВЕАТЕ ОАТАВАБЕ: СВЕАТЕ ОАТАВАЯЕ <СясаЬаяе паве> [ОМ [РВ1ИАВУ] ([НАИЕ = <'1одзса1 Е11е паве'>,] Г1ЬЕНАИЕ = <'Е11е паве'> [, Я12Е = <язве Еп К11оЬуСея, ведяЬРСея, СЕСаЬуСея, ог СегаЬуСея>] ИАХБ12Е = язсе Еп <11ЬЬуСея, вечяЬуСея, дудаЬуСея, ог СегаЬуСея>] [, Г1ЬЕОВОХТН = <К11ОЬуСея, ведяпуСея, СЕСяьуСея, ог СегаЬусея)регсепсаде>])] [ЬОО ОЮ ([НАИВ = <'1одьса1 Е11е паве'>,] Создание и модификация таблиц 169 ГТЬЕХ(ЬЧЕ = < Г11е па > (, 51ЕЕ = <ягге гп К11оЬусея, веяаЬусея, с1саЬусея, ог Сегаьусея>( НАХЯ1ЕЕ = <ягге гп К>1оЬусея, весаЬугея, сЬсаЬугея, ог ГегаЪугея>( ГгьеОЕОхтн = <К11оьугея, весаьугея, ч1саЬугея, ог гегаЬугея(регсепгаче>()( СОЬЬАТЕ <со11асгоп паше> ГОН АТТАСН (ХТТН <яегч1се ЬгоКег>(( ГОН АТТАСН НЕВОТЬР ЬОО( Х1ТН РВ СНА1Х1ХО ОХ(ОГГ ( ТНОЯТХОНТНУ ОХ(ОГГ( (АВ ВКАРВНОт ОГ <яопгсе СагаЬаяе паве>) ('( Следует учитывать, что некоторые опции в этой синтаксической структуре являются взаимоисключающими (например, если применяется ключевое слово ГОН АТТАСН, то большинство опций, отличных от тех, которые служат для указания местонахождения файлов, становятся недействительными).
Очевидно, что синтаксическая структура оператора создания базы данных является довольно сложной, поэтому рассмотрим ее по частям. Ключевое слово о1(у Ключевое слово ОН используется для определения местонахождения файла, в котором хранятся данные, и для определения аналогичной информации, касающейся места хранения журнала. Важно отметить, что в первом случае указано также ключевое слово РН1МАНУ, которое означает, что за ним следует первичная (нли основная) файловая группа, предназначенная для физического хранения данных. Для хранения данных можно также предусмотреть использование так называемых вторичных файловых групп, но описание их применения выходит за рамки настоящей книги.
Однако на данный момент достаточно придерживаться такой предусмотренной по умолчанию структуры базы данных, в которой вся необходимая информация хранится в одном файле. Ключевое слово нлмк Это ключевое слово, означающее "имя", нельзя трактовать буквально, поскольку оно определяет не физическое, а логическое имя файла базы данньгх, заданное в операторе создания базы данных; иными словами, это ключевое слово задает имя, которое будет использоваться в программном обеспечении СУБД БО(.
Яегуег для ссылки на файл базы данных. Пользователь применяет указанное имя, если ему требуется изменить размеры (увеличить или уменьшить) базы данных и (или) файла. Ключевое слово в'хтлилмк Данное ключевое слово полностью соответствует своему буквальному смыслу— оно обозначает физическое имя действительного файла операционной системы на жестком диске. Именно в этом файле будут храниться данные или журнал (в зависимости от того, в каком разделе оператора СНЕАТЕ РАТАВАЯЕ задано имя файла). В параметре, обозначенном с помощью этого ключевого слова, также могут исполь- 170 Глава 5 зоваться значения, предусмотренные по умолчанию (при условии, что в операторе создания базы данных применяется простой синтаксис, который был описан в первую очередь), зависящие от того, относится ли ключевое слово к самой базе данных или к журналу. По умолчанию указанный файл будет находиться в подкаталоге Иаса главного каталога Ргодгаж Е11еэ',ИББО1,.
1~ИББЯЕ (или того каталога, который был указан в качестве главного каталога БЯЕ Беггег, если имя главного каталога было изменено во время инсталляции). Если речь идет о физическом файле базы данных, то для него применяется такое же имя, как и для базы данных, с расширением . як(Е Если же речь идет о журнале, то рассматриваемый файл принимает такое же имя, как и файл базы данных, но приобретает суффикс Еод и расширение .
1б1. Если решено явно задать имя файла, то допускается указгявать другие расширения, но автор настоятельно рекомендует придерживаться заданных по умолчанию значений як11 (база данных) и 1ог (журнал). Дополнительно отметим, что вторичные файлы имеют по умолчанию расширения . пой Следует учитывать, что параметр Е1ЕЕИДИЕ может рассматриваться как необязательный только при том условии, если применяется чрезвычайно простой синтаксис оператора создания базы данных (с помощью которого новая база данных создается на основе базы данных жоое1), описанный в данной главе в первую очередь. А если предоставляется какая-либо дополнительная информация, то необходимо и явно задать имя файла, и обязательно ввести полный путь к файлу.