Программирование баз данных MS SQL Server (1084479), страница 101
Текст из файла (страница 101)
Наиболее важным является второе из указанных различий. Если не учитывать этого различия, то выполнение оператора РКОР для уничтожения представления, а затем создание представления с помощью оператора СКЕАТЕ приводит почти к таким же результатам, как и при использовании оператора АЬ ЕК Ч1ЕХ. Но возникает важная проблема, связанная с тем, что приходится снова определять всю структуру прав, согласно которой СУБД принимает решение о том, кто может и не может применять это представление.
Уничтожение представления Синтаксис оператора уничтожения представлений является чрезвычайно простым: ОКОР Ч1ЕИ <чьев пате>, ~<ч1ев пате>,Г Создание и редактирование представлений в программе Мапаяетеп1 8Шб~о Некоторые разработчики не стремятся глубоко разобраться в том, чем они занимаются, поэтому охотно используют действительно превосходные возможности программы Мапакешеп1 Ягпйо. С помощью этой программы задача создания приложения значительно упрощается, причем для этого фактически не требуется глубоко разбираться в том, как действуют запросы. Чтобы ознакомиться с этими средствами, запустите программу Мапаяешепг 51п<11о откройте подузел базы данных ИогС11и1п<1 узла РасаЬазез и щелкните правой кнопкой мыши на обозначении Чьенэ, 11оявится окно, которое показано на рис.
10,1. 396 Глава 10 Рис. 10.1. Узел Оа1аЬазез Теперь выберите команду г!ев Ч!езг, чтобы открыть новое диалоговое окно. Это диалоговое окно позволяет выбирать таблицы, данные которых должны быть включены в представление. На рис. 10.2 показано, как выбрать одну таблицу, в данном случае Оасеоог1ез, но в рассматриваемом примере мы собираемся включить в представление другую таблицу, точнее, четыре таблицы. Рис. 10.2. Диилзгазие икки Яс1с! Тай!е Чтобы выбрать одну таблицу, переведите на нее подсветку, а для выбора следующих таблиц щелкните на их названиях, удерживая нажатой клавишу <Сгг!>. Теперь щелкните на обозначении таблицы Опзеовегз, а затем нажмите и удерживайте нажатой клавишу <Сгг!>, выбирая таблицы Огбегз, Огс!ег Оега11з и Ргог!пссз.
В конечном итоге обозначения всех этих четырех таблиц должны быть выделены подсветкой, как показано на рис. 10.3. Представления 397 1Ъс 10З. Диалоговое окно Агуб ТаЫе после выбора нескольких таблии Затем щелкните на кнопке Ас)с), чтобы СУБД Яьг1. Яегчег добавила несколько таблиц к представлению (в действительности в большинстве систем должна быть предусмотрена возможность увидеть, как происходит добавление этих таблиц в редакторе представлений, который будет рассмотрен ниже). Прежде чем закрыть диалоговое окно Ас)с) ТаЫе, обратите внимание на вкладки Н)ечгэ, Еппсйопэ и Бупопугпв, находящиеся в его верхней части.
В представлении могут быть предусмотрены непосредственные ссылки на эти объекты, и данное диалоговое окно предоставляет возможность сразу же ввести эти ссылки в определение предоставления. А пока щелкните на кнопке Ас)с) и понаблюдайте за тем, как открывается окно редактора представлений, показанное на рис. 10.4.
Рис. 10.4. Окно )эедактора представлений 398 Глава 10 Окно Н1евг Ви1Ыег состоит из четырех перечисленных ниже подокон, которые можно разворачивать и сворачивать независимо друг от друга. О Подокно Р(а0гагп. СЗ Подокно Сп1епа. [Л Подокно 80 . Р Подокно йеэийв. Программисты, которым довелось работать с СУБД Ассезз, могут заметить, что с помощью подокна 01е0гегп выполняются примерно такие же действия, как и в окне редактирования запросов Ассеак В нем можно добавлять и удалять таблицы и даже определять связи. После каждого добавления таблиц, проставления отметок напротив имен столбцов и определения связей выполненные действия автоматически отражаются в подокне 80(.
в форме кода 8О), соответствующего разрабатываемой диаграмме. Чтобы определить назначение каждой из пиктограмм на панели инструментов, следует задержать над ней на короткое время указатель мыши, чтобы всплыла подсказка, описывающая назначение интересующей вас кнопки. После этого выберите некоторые столбцы, как показано на рис. 10.зг. Рис.
10.5. Сннибвы, оыбуганныо о подонке Р(адгат На рис. 10.5 рэди экономии места показано только подокно 01а0гагп. Если бы на экране во время выполнения указанных действий было развернуто подокно Ог)с), то в данном подокне появлялась бы информация о каждом выбранном столбце. Если же развернуто подокно 80(., то результаты формирования диаграммы отображаются также в виде кода БОИ.. На данном этапе можно легко догадаться, что в рассматриваемом примере происходит формирование того же представления, которое было создано в первом примере сложного представления (СпэсогэегОгс(егэ чн).
При этом единственной нетривиальной задачей является формирование вычисленного столбца (ехсепс(есгРг(се). Чтобы решить эту задачу, необходимо либо ввести вручную формулу вычисления значений этого столбца в подокне 80~, либо задать ее в столбце Со1пгпп подокна Ог(г), указав также псевдоним вычисленного столбца (рис. 10.6). Представления 399 с 1ОС Ссн, Я [ем асс М [осев а М Ооас "4псС с ФавепСЕСя СПСесСВС и,.
'ст" Ъ~с)а "Еае)Е ааС;"Ы. ' ' "с 1 ]е)ст).'", жайми асс)яятаДЕсс сага) я Еаи а. ~ж" ЙЩ асят:" ' 4 ССМ С СйяЯ Ф~, а СаС Са В1Я Сгс Е С ~ ~Ж.'ЯГСССЯС аПС ЬФ ы о,с.,~ но] не а вс оса сс г с я а,ос,с с пнесзля а Сса а* 'се%4 ь.О. а'с ю В СФа яе с Гса юаснзмь ь Е с асяе сОа аФю гв ы.'ль а н сФ,Ф ~.ап Рнс. 10.б. Формула, введенная в снмлбие Со!птп нодонна Сяг)с[ После осуществления всех описанных действий в программе 1г[есе Вш[бег должен быть сформирован следующий код Яоргс ЗКЬКСт бпо.сгбегя.сгбегсаге, бьо.спясонегя.сонрапунане, бЬо.ргобисся.ргобпсснапсе, бЬо.[Огбег Оеяа11я).ргобпсс1О, сйо.[Огбег Оепа11я].спгСРгтсе, сйо.[Огбег Оеса11я).Опапсгсу, бЬо.[Огбег Оеяаг1я).Опапгбсу * бЬо.[Огбег Оепаг1я).сптсрггсе ав ЕхсепбебРггсе РЕОМ бЬо.спяпонегя 1ННЕЕ 301Н сйо.Огбегя ОН сйо.сияяонегя.спясонег10 = бЬо.Огбегя.спясонег10 1ННЕЕ .ТОХН бЬо.[Огбег Оеяа11я] ОН бЬо.Огбегя.Огбег1О = бЬо.[Огбег Оесаг1я).Огбег10 1ННЕЕ 001Н бьо.Ргобпспя ОН сйо.[Огбег Оеса11я).Ргобпсп10 = бьо.Ргобясся.Ргобпсс1О Безусловно, этот код приведен в другом формате по сравнению с составленным вручную кодом сложного запроса, но его анализ показывает, что между кодом, сформированным автоматически и вручную, нет существенных различий! ВСРИОС666НИ6 СИНТаКСИСа 4асПРРСС6: Т-Вй)),:Д6ЕТСа ЕаМ.
СбслйСИМЛРУДОМ.; тсасм, Майета ' ИСПРНЬЗРааТЬ ОбраанЙбе .ИНСТРУМ6НТЭЛЬНО6)СР6ДС660', ЧТОВЫ ПРОФ6' ПОНИТЬ СННТаКСНС'бас ' Прсора) ДсотатОЧНС,ПЕретащНСтзс-'Оиресдессвисна,Наоасс)В[ЙХ ТабЛНц Е, ррдрКйО В)арбат, 6Ыя .,'братЬ Иа Канд[]й ТабВИцмост[и[бцЫ;,:ЕОтсрме дед Хиуд 6ЫтЬ аняЮЧелз]а ЗайрОС,'иссох Че[т! ' 66ОЛЬ]ОИНСтае;СНУНаЕЕЛ[]СПЗамсМ6МанаРЕ]септ ВВНВОУСйаЬННРСфСРЫИРУ6ТЬН6ССбкссДИМЫй' . ,' ааПРОС; В6М РотаНатоасЛСИН)Ь ИЗУЧисс) СИНТаМР[6:КСДа,.офСРМИРОЕаННРТО 'ПрсОУ[а]НМОВЛДЕ]И':. .ВС))баб Чтобм 66Н6ТЬ;:Кака 666ДУЮЩИй Раа СФОРМИРОратизтст:ааиеообеэспРСТЮРФННей . Теперь перейдем к следующему этапу — сохраним полученное представление под именем СпяпопсегОгбегя2 чн (автор предпочитает использовать для этой цели пиктограмму на панели инструментов с изображением диска) и закроем программу у)есу Вш)бег.
400 Глава 10 Редактирование представлений в программе Мапа9е1пеп1 81иб1о С помощью программы Мапаееп1еп[ Б[ид[о модифицировать представления так же легко, как и создать их. Единственное отличие состоит в том, что для редактирования представления необходимо перейти по дереву объектов к какому-то конкретному представлению, щелкнуть на его обозначении правой кнопкой мыши и выбрать во всплывающем меню команду Моб[[у. После выполнения всех этих действий пользователя приветствует та же дружественная программа Янечку Вез1япег, которая использовалась при создании запроса. Просмотр и контроль существующего кода На практике часто возникает необходимость ознакомиться с определением одного из представлений, которые применяются в базе данных.
После изучения сведений, изложенных в предьшущих разделах, должно быть очевидно, что наиболее удобный способ решения этой задачи состоит в использовании программы Мапаеешеп[ Б[цп[о для выполнения тех же действий, которые осуществляются для редактирования представления. Перейдите в дереве объектов к подузлу Н[еууз, выберите обозначение представления, с которым вы хотите ознакомиться, щелкните на этом обозначении правой кнопкой мыши и выберите во всплывающем меню команду Мос[[1у Н[еуу.
Откроется окно, в котором будет показан код определения представления с выделенными разным цветом синтаксическими конструкциями. Но, к сожалению, для ознакомления с кодом представления не всегда имеется возможность воспользоваться программой Мапаеешепг Ягпб[о (безусловно, кроме этой программы имеются другие инструментальные средства с меньшими возможностями, но они здесь не рассматриваются). Тем не менее для ознакомления с фактическим определением представления можно воспользоваться следующими вариантами: С1 вызвать на выполнение процедуру эр Ье1рсехг; Сз открыть системную таблицу эуэсопзпепсэ. Наиболее предпочтительный вариант состоит в использовании процедуры эр Ье1ргехг, поскольку с каждым новым выпуском формат системных таблиц немного изменяется, но все эти изменения учитываются в коде процедуры.