Чтение онлайн

на главную - закладки

Жанры

Обработка баз данных на Visual Basic®.NET

Прайс Кевин Т.

Шрифт:

GO

Они гарантируют корректную (временную) конфигурацию базы данных для выполнения нужной операции и переустановку параметров для выполнения следующих операций.

Далее созданный сценарий предлагается в виде отдельных фрагментов, но на практике его рекомендуется создавать и применять в виде целого файла. В таком случае после создания рабочего сценария можно вставить его текст в окно Query программы SQL Query Analyzer (либо загружая его из тестового файла, либо копируя и вставляя с помощью буфера обмена) и щелкнуть на кнопке Execute для запуска. Можно также использовать отдельные фрагменты сценария или создать на основе

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

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

Листинг 3.1. Сценарий создания физической базы данных Novelty

/****** Object: Database Novelty Script Date: 10-Jul-02 12:41:09 PM ******/

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'Novelty')

 DROP DATABASE [Novelty]

GO

CREATE DATABASE [Novelty] ON (NAME = N'novelty_Data',

 FILENAME = N'c:\program files\microsoft sql server\
mssql\data\Novelty_Data.mdf',

 SIZE = 3, FILEGROWTH = 10%) LOG ON (NAME = N'novelty_Log',

 FILENAME = N'c:\program files\microsoft sql server\
mssql\data\Novelty_Log.LDF', SIZE = 3, FILEGROWTH = 10%)

 COLLATE Latin1_General_CI_AI

GO

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

Код в листинге 3.2 задает параметры базы данных, описание которых приводится в официальной справочной документации SQL Server Books Online.

Листинг 3.2. Сценарий указания параметров базы данных Novelty

exec sp_dboption N'Novelty', N'autoclose', N'false'

GO

exec sp_dboption N'Novelty', N'bulkcopy', N'false'

GO

exec sp_dboption N'Novelty', N'trunc.log', N'false'

GO

exec sp_dboption N'Novelty', N'torn page detection', N'true'

GO

exec sp_dboption N'Novelty', N'read only', N'false'

GO

exec sp_dboption N'Novelty', N'dbo use', N'false'

GO

exec sp_dboption N'Novelty', N'single', N'false'

GO

exec sp_dboption N'Novelty', N'autoshrink', N'false'

GO

exec sp_dboption N'Novelty', N'ANSI null default', N'false'

GO

exec sp_dboption N'Novelty', N'recursive triggers', N'false'

GO

exec sp_dboption N'Novelty', N'ANSI nulls', N'false'

GO

exec sp_dboption N'Novelty', N'concat null yields null', N'false'

GO

exec sp_dboption N'Novelty', N'cursor close on commit', N'false

GO

exec sp_dboption N'Novelty', N'default to local cursor', N'false'

GO

exec sp_dboption N'Novelty', N'quoted identifier', N'false'

GO

exec sp_dboption N'Novelty', N'ANSI warnings', N'false'

GO

exec sp_dboption N'Novelty', N'auto create statistics', N'true'

GO

exec sp_dboption N'Novelty', N'auto update statistics', N'true'

GO

Теперь

после создания базы данных можно приступить к работе с ней, т.е. начать выполнять команды по отношению к ней. Для выполнения команд SQL с другой базой данных NoveltyTest (например, для ее тестирования на том же сервере) нужно просто указать другую базу данных с помощью команды USE.

USE [NoveltyTest]

GO

Далее в сценариях создания объектов базы данных также проверяется их наличие и удаление (если они имеются). Это относится к ограничениям, триггерам, хранимым процедурам, представлениям и таблицам. Этот порядок имеет большое значение, потому что таблицу нельзя удалить, если существует какой-то из связанных с ней объектов. Код выполнения этих операций приведен в листинге 3.3.

Листинг 3.3. Сценарий удаления существующих объектов в базе данных Novelty

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_tblOrder_tblCustomer]')

and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[tblOrder] DROP CONSTRAINT FK_tblOrder_tblCustomer

GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_tblEmployee_tblDepartment]')

and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

ALTER TABLE [dbo].[tblEmployee] DROP CONSTRAINT FK_tblEmployee_tblDepartment

GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_tblOrderItem_tblInventory]')

and OBJECTPROPERTY(id,N'IsForeignKey') = 1)

ALTER TABLE [dbo].[tblOrderltem] DROP CONSTRAINT FK_tblOrderItem_tblInventory

GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_tblOrderItem_tblOrder]')

and OBJECTPROPERTY(id, N'IsForeignKey') = 1)

Поделиться:
Популярные книги

Блуждающие огни 4

Панченко Андрей Алексеевич
4. Блуждающие огни
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Блуждающие огни 4

Я сделаю это сама

Кальк Салма
1. Магический XVIII век
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Я сделаю это сама

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Боярышня Дуняша

Меллер Юлия Викторовна
1. Боярышня
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боярышня Дуняша

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Леди для короля. Оборотная сторона короны

Воронцова Александра
3. Королевская охота
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Леди для короля. Оборотная сторона короны

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5

Невест так много. Дилогия

Завойчинская Милена
Невест так много
Любовные романы:
любовно-фантастические романы
7.62
рейтинг книги
Невест так много. Дилогия

Идеальный мир для Социопата 3

Сапфир Олег
3. Социопат
Фантастика:
боевая фантастика
6.17
рейтинг книги
Идеальный мир для Социопата 3

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Наследник павшего дома. Том I

Вайс Александр
1. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том I

Крещение огнем

Сапковский Анджей
5. Ведьмак
Фантастика:
фэнтези
9.40
рейтинг книги
Крещение огнем

Камень Книга двенадцатая

Минин Станислав
12. Камень
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Камень Книга двенадцатая