Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Артемов Д.В. -> "Microsoft SQL Server 2000" -> 84

Microsoft SQL Server 2000 - Артемов Д.В.

Артемов Д.В. Microsoft SQL Server 2000 — М.: Издательско-торговый дом «Русская Редакция», 2001. — 576 c.
ISBN 5-7502-0154-6
Скачать (прямая ссылка): artemov.pdf
Предыдущая << 1 .. 78 79 80 81 82 83 < 84 > 85 86 87 88 89 90 .. 187 >> Следующая


Рис. 3-30. Вот,

что нам посоветовали.

Щелчок кнопки Advanced options (Дополнительные параметры) позволяет указать мастеру границы, в которых он должен оставаться с точки зрения размера индексов, числа запросов из профиля трассировки, максимальное число столбцов при построении индивидуального индекса.

Перейдя в следующее окно, Вы указываете мастеру, где у Вас расположены данные (рис. 3-30). В нашем случае мастер показывает список таблиц текущей базы данных (помните, мы используем выделенный в Query Analyzer текст запроса) и предлагает выбрать те, что должны подвергнуться анализу.

www.books-shop.com

ГЛАВА 3: Управление базами данных

231

*/ */ */ */ */

SET QUOTED_IDENTIFIER ON

SET ARITHABORT ON SET CONCAT_NULL_YIELDS_NULL ON SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON SET NUMERIC_ROUNDABORT OFF

DECLARE AErrors as bit

BEGIN TRANSACTION

SET @bErrors = 0

DROP INDEX [dbo],[Employees].[PostalCode] DROP INDEX [dbo].[Employees].[LastName] IF( iabErrors = 0 )

COMMIT TRANSACTION ELSE

ROLLBACK TRANSACTION

BEGIN TRANSACTION

SET @>bErrors = 0

CREATE NONCLUSTERED INDEX [Orders2] ON [dbo].[Orders] ([EmployeeID]

ASC, [OrderID] ASC, [ShippedDate] ASC ) IF( »error о 0 ) SET @bErrors = 1

IF( gbErrors = 0 )

COMMIT TRANSACTION ELSE

ROLLBACK TRANSACTION

Хотя никто не отнимет у администратора или разработчика права на последнее слово при проектировании БД, приятно знать, что SQL Server предлагает инструмент, способный помочь в выборе правильного подхода.

go

www.books-shop.com

232

Microsoft SQL Server 2000. Новейшие технологии

SQL DMO

В главе 2 я упоминал о SQL DMO — интерфейсе, включающем набор коллекций, несколько десятков объектов, сотни свойств и методов и позволяющем обратиться практически к любому аспекту деятельности SQL Server. SQL DMO открывает доступ к функциональности SQL Server для разработчиков, пишущих не на Transact SQL, а иных языках программирования, способных использовать SQL Server как OLE Automation-сервер. SQL DMO позволяет создавать новые объекты БД, манипулировать их свойствами и содержимым, выполнять практически любые административные функции — все это в рамках привычной объектной модели. Последняя представляет собой дерево объектов, и головным является объект Application (рис. 3-31). Объект Application представляет собой экземпляр SQLDMO, инициализированный в рамках конкретного приложения, но настоящую ценность представляет объект следующего уровня — сам SQL Server.

SQLServer — объект самого высокого уровня, с него начинается вся работа. Уровнем ниже расположена коллекция объектов Databases, включающая все объекты, которые реально присутствуют в БД: таблицы, правила, хранимые процедуры, триггеры и т. д.

Одна из самых очевидных областей применения SQL DMO — создание собственных мастеров, помогающих неподготовленному пользователю или недостаточно квалифицированному администратору выполнять разного рода работы без особого

Интересно, что все обращения к объектам SQL DMO транслируются в вызовы соответствующих системных хранимых процедур. Это хорошо видно при использовании утилиты трассировки SQL Server Profiler.

www.books-shop.com

ГЛАВА 3: Управление базами данных

233

с. 3-31. Объектная модель SQL DMO позволяет получить доступ к любым компонентам и объектам сервера.

www.books-shop.com

234

Microsoft SQL Server 2000. Новейшие технологии

Создание объектов БД средствами SQL DMO

Ниже показана коллекция Databases и ее объекты (рис. 3-32), свойства и методы которых позволяют создавать новые БД таблицы, хранимые процедуры и пр.

Puс. 3-32. Коллекция объектов Databases.

Давайте создадим новую БД. Я не стану творить очень сложный интерфейс — нас интересует скорее подход, нежели красота. Я создам форму с единственной кнопкой. По щелчку кнопки будет создана БД, журнал транзакций для нее, одна и хранимая процедура.

Private Sub Command~LClick()

Dim SQLServer As New SQLDHO. SQLServer

www.books-shop.com

ГЛАВА : Управление базами данных

235

Dim NewDatabase As New SQLDMO.Database Dim NewFilegroup As New SQLDMO.FileGroup Dim NewFile As New SQLDMO.DBFiIe Dim NewLog As New SQLDMO.LogFile Dim NewTable As New SQLDMO.Table Dim NewColumn As New SQLDMO.Column Dim NewSproc As New SQLDMO.StoredProcedure SQLServer.Connect "dimaa_home", "sa", "" NewDatabase.Name = "SQLDMOdatabase" NewFile.PhysicalName = "C:\Temp\sqldmo.mdf" NewFile.Name = "SQLDMO" NewLog.Name = "SQLDMOLog"

NewLog. PhysicalName = "C:\Temp\sqldmolog.ldf" NewLog.Size = 2

'* Стандартная группа с именем PRIMARY '* создается автоматически

'* Метод Filegroups.add необходим только при создании '* новой группы

NewFile NewLog

NewTable. Name = "SQLDMO" NewColumn. Name = "FielcH"

=

NewColumn. Length = 10 NewTable. Columns.Add NewColumn SQLServe r.DATABASES.Add NewDatabase NewDatabase.Tables.Add NewTable NewSproc.Name = "SQLDMOProc" ' Одна из особенностей создания хранимой процедуры заключается в том,
Предыдущая << 1 .. 78 79 80 81 82 83 < 84 > 85 86 87 88 89 90 .. 187 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100