Программирование баз данных MS SQL Server (1084479), страница 49
Текст из файла (страница 49)
Оператор Аттей Безусловно, разработчик после создания базы данных и определения в ней всех необходимых и очень удачных по своей структуре таблиц испытывает полное удовлетворение. Но жизнь не стоит на месте, поэтому иногда (а фактически гораздо чаще, чем хотелось бы) приходится выполнять распоряжения по изменению структуры таблицы, а не просто ее воссозданию. Кроме того, в процессе эксплуатации базы данных может потребоваться изменить размеры, местонахождение файлов илн какие-то другие ее характеристики. Оператор АЕТЕЕ позволяет осуществить все необходимые для этого действия.
Оператор АНТЕЕ во многом напоминает оператор СЕЕАТЕ, поэтому имеет в основном такую же синтаксическую структуру: Аьтек <оь)есс гуре> <оь)есс пате> Изучение втой структуры не составляет никакого труда, но более подробные сведения об операторе АЬТЕЕ являются достаточно сложными. В этом можно будет сразу же убедиться, как только мы приступим к изучению указанного оператора, а после дальнейшего углубления в эту тему в следующей главе (когда речь пойдет об ограничениях) изложение станет действительно интересным (читай "сложным и запутанным" (). Оператор ЛХ.тжв Ш~тЛВЛЛК Вначале рассмотрим, как можно модифицировать характеристики базы данных.
В настоящем разделе рассматривается ряд примеров, позволяющих ознакомиться с тем, как осуществляются те или иные действия и какие для этого применяются синтаксические конструкции. По-видимому, самым сложным аспектом применения оператора АЬТЕЕ является определение того, какова ситуация, в которой должны осуществляться его действия. Для этой цели еще раз рассмотрим текущее состояние базы данных, как показано ниже.
ЕХЕС зр Ье1рСЬ Ассоппезпд Обратите внимание на то, что в этом случае, в отличие от предыдущего примера использования данной хранимой процедуры, для обозначения имени базы данных не применяются кавычки. Это связано с тем, что системная процедура эр Ье1рдЬ, как и многие другие процедуры такого типа, принимает в качестве параметра специальный тип данных, называемый зузпате, а для этого типа данных кавычки являются необязательными, прн условии, что процедуре передается действительное имя объекта, представленного в системе. Так, полученные результаты должны полностью соответствовать тем, которые были получены сразу после создания базы данных (табл.
5.3 и 5.4). Создание и модификации таблиц 193 Таблица б.3. Данные о структуре таблицы Ассоцпсхпд (пЕРвый Результирующий набор) стяраа1— га» вхвв сапах <1Ьаб сгевсвб всвсив ьшсу 1ввв1 Ассоппсгпд 15.00 МВ яа 9 Мяу 28 2000 Япяспя=01П.1МЕ, 90 србяяяяэг[гяу=зЕА0 ВкгтЕ, сяяглссяяя=МНЬТ1 сзеа, Аессяягу=ГУСЫ Уегя1ап=590, Сп11ая1пп=зоь Ьяс[п1 Сяпягя1 СР1 С1 АЯ, ЯОЬБогГОгбег=52, 1яапяоСгеясеБГясгяпгся, 1яппяпсрбясезсаягяягся, 1ягп11техГЕпяъ[еб Таблица 6.4.
Данные о структуре таблицы Ассоппкхпд (второй результирующий набор) Шедгспр в1вв ввввявв дгпвть пввдв Швхб Швпвтв с: 1Ргпдгяв Г11еЫ Мгсгпяпг 501 Бегяег1МБЯОЬ.11 тяяд11бяяя1 Ассоппягпдпяся.тб1 Асспппягпд 10240 51200 КВ 5120 Кв баСа КВ оп1у РА1МРЛУ с:1ргодгяв Г11яя1 И1сгояпгг 501 Бягяег1МЯЯОЬ.11 тяяч11бясяу Ассоппг1пдьод.101 АсспппГ1пдьпд 2 5120 25600 КВ 5120 КВ 1пд КВ оп1у МСЬЬ АЬТЕК ОАТАВАЯЕ <басаЬаяе пате> А00 Г11Е [[МАМЕ = <'1одгса1 Ше пате' >,] Г11ЕМАИЕ = <'Г>1е пате'> [, Я12Е = <я>ге гп КВ, МВ, 6В ог ТВ>] ИАХЯ12Е = < ягге гп КВ, ИВ, ОВ ог ТВ >] Г1ЬЕОКОМТН = <Мо оу КВ, МВ, ОВ ог ТВ [регсепгаде>]) [,...и] Допустим, что требуется внести некоторые изменения в характеристики базы данных. Например, предположим, что администратор базы данных получил распоряжение подготовить базу к импорту в нее болыпого объема данных.
В настоящее время база данных имеет размер, равный всего лишь 15ИВ, а по нынешним меркам это не такой уж большой объем. Напомним, что параметру Апгодгои присвоено значение оп, поэтому можно было бы сразу же приступить к импорту, после чего СУБД 89[. Еегуег каждый раз автоматически наращивала бы размеры базы данных на 5ИВ по мере ее заполнения. Но следует помнить, что такие автоматические операции увеличения размеров базы данных фактически требуют от сервера выполнения довольно большого объема работы. Например, если должна быть произведена вставка данных в объеме 100МВ, то серверу придется выполнять операции перераспределения базы данных по меньшей мере [б раз (увеличить ее до 20МВ, 25МВ, ЗОМВ и тд.). А поскольку известно, что предстоит получение 100МВ данных, то, по-видимому, более целесообразно заранее подготовиться к этому с помощью единственной операции.
Для этого и используется команда АЕТЕК ОАТАВАЯЕ. Команда АЬТЕЕ РАТАВАЕЕ имеет следующий общий синтаксис: 194 Глава 5 [ тО Г11ЕОНООР Е11едгопр пате) [, ОГГЬ|НЕ ] (АОО ЬО6 Г11Е ([МАМЕ = <'1од1са1 111е пате' >,] Г11ЕНАМЕ = <'111е паве'> [, ВХЕЕ = < яьге гп КВ, МВ, 6В ог ТВ >] [, млхя1ге = < яьге гп кВ, мВ, 6В ог тВ >) Г11ЕОНОНТН = <Но КВ, МВ, 6В ог ТВ )регсепгапе>]) (немоне Г1ье <1ос1са1 111е паше> [н1тн оеьете) [АОО Г11ЕОВООР <111еогопр пате> [ВЕМОЧЕ Г1ЬЕОНООР <111есгопр паве> [МО01Гу Г1ЬЕ <111еярес> (МО01ГУ МАМЕ = <пея Н)>пате> (моо1ГТ Гтьесаоор <Ггведгопр пате> [<111едгопр ргорегсу>[нлмк <пея 111еогопр паве>) )ВЕТ <орсьопярес> [,...и )[И1ТН <Гегв1паггоп>) [СОЬЕАТЕ <со11аягоп пате> Этот синтаксис является очень сложным, но в действительности некоторые разделы оператора АЬТЕЕ ВАТАВАЯЕ используются очень редко.
Просто специалисты компании М]сгояой постарались предусмотреть все возможные ситуации, в которых требуется применение этого оператора. После краткого ознакомления со структурой оператора модификации базы данных остановимся на том, что просто увеличим размеры базы данных до 100МВ: АЬТЕН ОАТАВАВЕ Ассоппсгпя МОО1ГУ Г1ЬЕ (%ИЕ = Ассоппс1по, 61ЕЕ = 1ООМВ) Следует отметить, что при выполнении этого оператора, в отличие от оператора создания базы данных, не происходит вывод на внешнее устройство какой-либо информации о расположении базы данных; вместо этого формируется следующее краткое сообщение: ТЬе соввапс(я) совр1еяео япссеяягп11у.
Очевидно, что с помощью этого сообщения нельзя узнать достаточно много о том, какой вид приобрела база данных, поэтому нам придется выполнить проверку самим: ЕХЕС яр Ае1РО)> Ассоппс1по Полученные результаты приведены в табл. 5.5 и 5.б. Вполне очевидно, что попытка увеличения размера базы данных до 100МВ завершилась успешно. Здесь заслуживает внимания то, что был превышен ранее установленный максимальный размер в 51200КВ, но сообщение об ошибке не получено.
Это связано с тем, что увеличение размера было выполнено в явной форме. Таким образом, можно сделать вывод, что в том же операторе модификации базы данных нужно было бы предусмотреть увеличение максимально допустимого размера базы данных. Ведь если мы остановимся на этом и просто позволим СУБД ЯО[.
Яегуег наращивать размеры базы данных по мере необходимости, то попытка осуществления импорта окончится неудачей на полпути из-за того, что продолжают действовать ограничения по максимальному размеру. В этой ситуации необходимо также иметь в виду, что значение МАХЕ 1 ЕЕ увеличено лишь до нового явно заданного значения, поэтому возможность дальнейшего роста базы данных исключена. Создание и модификация таблиц 195 Таблица 5.5. Данные о структуре таблицы йссоппвапс (первый результирующий набор) соерас- 1Ь11а 1ече1 бЬ я1ве Оепег бЬзс1 сгевсеб всякая Ассоппс1пд 105.00 МВ Яа Мау 28 2005 Ясаспя~>МЫМЕ, 90 ОрбасеаЬ'11су-КЕАО КАТТЕ, Ояегассеяя=МОЬТ1 ОБЕР„ Кесооегу=ГОЬА, Чегя1оп=598, Со11ас1оп=ЯОЬ Ьас1п1 Оепега1 СР1 С1 АЯ, ЯОЬЯогсогбег=52, 1яппсоСгеасе5сас1ясгся, 1яАпсаэрбасеБГасгяг1ся, 1ягп11тегГЕпаыеб Таблица 5.6. Данные о структуре таблицы йссоппкапя (второй результирующий набор) Шева ГА1епаве Шедгопр вгяе вакя1яе дгоеть пяаде с:1Ргодгав Г11ея1 м1сгаяаГг БОЕ яегаег1 МЯБОЫ 11еяяд11бага1 Ассоппс1пдэаса.ебг Ассонпс1пд 1 102400 102400 КВ КВ 5120 КВ баса опгу РК1МРЛУ с:гРгодгае Г11ея~ МОЬЬ м1сгояоГг БОЕ Бегаег1 МЯЯО1.11еяяд11баса1 АссоппсгпдЬод.1бг Ассоппг1пдьод 2 5120 КВ 25600 КВ 5120 КВ 1од оп1у По существу, все прочие наиболее часто выполняемые модификации на уровне базы данных осуществляются почти по такому же принципу.
Тем не менее выбор всевозможных сочетаний параметров и опций оператора модификации базы данных является буквально бесконечным. Описание более сложных модификаций файловых групп и подобных изменений структуры базы данных выходят за рамки настоящей книги. Если же читателю требуется дополнительная информация по этой теме, то можно порекомендовать воспользоваться одной из книг, посвященных описанию процедур администрирования базы данных (а количество таких книг весьма велико). Опции оператора модификации базы данных и спецификации завершения работы В СУБД 5(ЕЕ Бегуег предусмотрено несколько опций, которые могут быть заданы с помощью оператора АЕТЕЕ ВАТАВАЯЕ.
К ним относятся, в частности, опции определенна значений по умолчанию, касающихся конкретной базы данных, для большинства доступных опций ЯЕТ (таких как АМЯТ РАОВ1МВ и АЕ1ТНАВОЕТ; подобной возможностью модификации базы данных удобно воспользоваться, если в приложении требуются индексированные илн секционированные представления), опции состояния (напрнмер, определяющие эксплуатацию базы данных в однопользовательском режиме или режиме только чтения) и опции восстановления. Под воздействием различных опций ЯЕТ функционирование базы данных изменяется, и в настоящей книге об этом часто идет речь прн обсуждении соответствующих тем.