Прайс Кевин Т.
Шрифт:
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)
ALTER TABLE [dbo].[tblOrderltem] DROP CONSTRAINT FK_tblOrderItem_tblOrder
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_tblCustomer_tblRegion] ')
and OBJECTPROPERTY(id, N'IsForeignKey') = 1
ALTER TABLE [dbo].[tblCustomer]
DROP CONSTRAINT FK_tblCustomer_tblRegion
GO
/****** object: Trigger dbo.trCustomerI Script Date: 10-Jul-02 12:41:09 PM ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trCustomerI]')
and OBJECTPROPERTY(id,N'IsTrigger') =1)
drop trigger [dbo].[trCustomerI]
GO
/****** Object: Stored Procedure dbo.DeleteEmployee Script Date: 10-Jul-02 12:41:09 PM ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DeleteEmployee]')
and OBJECTPPOPERTY(id, N'IsProcedure') = 1)