CREATE TABLE [Add_Colors]
(
[ID_Cat] int NOT NULL ,
[ID_Color] int NOT NULL
)
go
ALTER TABLE [Add_Colors]
ADD CONSTRAINT [XPKAdd_Colors] PRIMARY KEY CLUSTERED ([ID_Cat] ASC,[ID_Color] ASC)
go
CREATE TABLE [Breed]
(
[ID_Breed] int NOT NULL IDENTITY ,
[Title] varchar(50) NOT NULL
)
go
ALTER TABLE [Breed]
ADD CONSTRAINT [XPKBreed] PRIMARY KEY CLUSTERED ([ID_Breed] ASC)
go
CREATE TABLE [Cat]
(
[ID_Cat] int NOT NULL IDENTITY ,
[Name] varchar(100) NULL ,
[Base_Color] int NULL ,
[Owner] int NOT NULL ,
[Breed] int NULL
)
go
ALTER TABLE [Cat]
ADD CONSTRAINT [XPKCat] PRIMARY KEY CLUSTERED ([ID_Cat] ASC)
go
CREATE TABLE [Color]
(
[ID_Color] int NOT NULL IDENTITY ,
[Title] varchar(20) NOT NULL
)
go
ALTER TABLE [Color]
ADD CONSTRAINT [XPKColor] PRIMARY KEY CLUSTERED ([ID_Color] ASC)
go
CREATE TABLE [Favor_Food]
(
[ID_Cat] int NOT NULL ,
[ID_Food_Type] int NOT NULL ,
[ID_Food_Taste] integer NOT NULL
)
go
ALTER TABLE [Favor_Food]
ADD CONSTRAINT [XPKFavor_Food] PRIMARY KEY CLUSTERED ([ID_Cat] ASC,[ID_Food_Type] ASC,[ID_Food_Taste] ASC)
go
CREATE TABLE [Feeding]
(
[Cat] int NOT NULL ,
[Food_Taste] integer NOT NULL ,
[Food_Type] int NOT NULL ,
[ID_Feeding] int NOT NULL IDENTITY ,
[Feeding_Date] datetime NULL
)
go
ALTER TABLE [Feeding]
ADD CONSTRAINT [XPKFeeding] PRIMARY KEY CLUSTERED ([ID_Feeding] ASC)
go
CREATE TABLE [Food_Taste]
(
[ID_Food_Taste] integer NOT NULL IDENTITY ,
[Title] varchar(20) NOT NULL
)
go
ALTER TABLE [Food_Taste]
ADD CONSTRAINT [XPKFood_Taste] PRIMARY KEY CLUSTERED ([ID_Food_Taste] ASC)
go
CREATE TABLE [Food_Type]
(
[ID_Food_Type] int NOT NULL IDENTITY ,
[Type] varchar(20) NOT NULL
)
go
ALTER TABLE [Food_Type]
ADD CONSTRAINT [XPKFood_Type] PRIMARY KEY CLUSTERED ([ID_Food_Type] ASC)
go
CREATE TABLE [Owner]
(
[ID_Owner] int NOT NULL IDENTITY ,
[Name] varchar(100) NULL ,
[Phone] char(11) NOT NULL ,
[e_mail] varchar(20) NULL
)
go
ALTER TABLE [Owner]
ADD CONSTRAINT [XPKOwner] PRIMARY KEY CLUSTERED ([ID_Owner] ASC)
go
CREATE TABLE [Settlement]
(
[ID_Settlement] int NOT NULL IDENTITY ,
[Departure] datetime NULL ,
[Departure_fact] datetime NULL ,
[Arrival] datetime NULL ,
[Cat] int NOT NULL
)
go
ALTER TABLE [Settlement]
ADD CONSTRAINT [XPKSettlement] PRIMARY KEY CLUSTERED ([ID_Settlement] ASC)
go
ALTER TABLE [Add_Colors]
ADD CONSTRAINT [R_3] FOREIGN KEY ([ID_Cat]) REFERENCES [Cat]([ID_Cat])
go
ALTER TABLE [Add_Colors]
ADD CONSTRAINT [R_4] FOREIGN KEY ([ID_Color]) REFERENCES [Color]([ID_Color])
go
ALTER TABLE [Cat]
ADD CONSTRAINT [R_1] FOREIGN KEY ([Base_Color]) REFERENCES [Color]([ID_Color])
go
ALTER TABLE [Cat]
ADD CONSTRAINT [R_5] FOREIGN KEY ([Owner]) REFERENCES [Owner]([ID_Owner])
go
ALTER TABLE [Cat]
ADD CONSTRAINT [R_7] FOREIGN KEY ([Breed]) REFERENCES [Breed]([ID_Breed])
go
ALTER TABLE [Favor_Food]
ADD CONSTRAINT [R_8] FOREIGN KEY ([ID_Cat]) REFERENCES [Cat]([ID_Cat])
go
ALTER TABLE [Favor_Food]
ADD CONSTRAINT [R_9] FOREIGN KEY ([ID_Food_Type]) REFERENCES [Food_Type]([ID_Food_Type])
go
ALTER TABLE [Favor_Food]
ADD CONSTRAINT [R_10] FOREIGN KEY ([ID_Food_Taste]) REFERENCES [Food_Taste]([ID_Food_Taste])
go
ALTER TABLE [Feeding]
ADD CONSTRAINT [R_11] FOREIGN KEY ([Cat]) REFERENCES [Cat]([ID_Cat])
go
ALTER TABLE [Feeding]
ADD CONSTRAINT [R_12] FOREIGN KEY ([Food_Taste]) REFERENCES [Food_Taste]([ID_Food_Taste])
go
ALTER TABLE [Feeding]
ADD CONSTRAINT [R_13] FOREIGN KEY ([Food_Type]) REFERENCES [Food_Type]([ID_Food_Type])
go
ALTER TABLE [Settlement]
ADD CONSTRAINT [R_6] FOREIGN KEY ([Cat]) REFERENCES [Cat]([ID_Cat])
go
CREATE TRIGGER tD_Breed ON Breed FOR DELETE AS
/* erwin Builtin Trigger */
/* DELETE trigger on Breed */
BEGIN
DECLARE @errno int,
@severity int,
@state int,
@errmsg varchar(255)
/* erwin Builtin Trigger */
/* Breed Cat on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="0000f963", PARENT_OWNER="", PARENT_TABLE="Breed"
CHILD_OWNER="", CHILD_TABLE="Cat"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_7", FK_COLUMNS="Breed" */
IF EXISTS (
SELECT * FROM deleted,Cat
WHERE
/* %JoinFKPK(Cat,deleted," = "," AND") */
Cat.Breed = deleted.ID_Breed
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Breed because Cat exists.'
GOTO error
END
/* erwin Builtin Trigger */
RETURN
error:
RAISERROR (@errmsg, -- Message text.
@severity, -- Severity (0~25).
@state) -- State (0~255).
rollback transaction
END
go
CREATE TRIGGER tD_Cat ON Cat FOR DELETE AS
/* erwin Builtin Trigger */
/* DELETE trigger on Cat */
BEGIN
DECLARE @errno int,
@severity int,
@state int,
@errmsg varchar(255)
/* erwin Builtin Trigger */
/* Cat Feeding on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="00039b90", PARENT_OWNER="", PARENT_TABLE="Cat"
CHILD_OWNER="", CHILD_TABLE="Feeding"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_11", FK_COLUMNS="Cat" */
IF EXISTS (
SELECT * FROM deleted,Feeding
WHERE
/* %JoinFKPK(Feeding,deleted," = "," AND") */
Feeding.Cat = deleted.ID_Cat
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Cat because Feeding exists.'
GOTO error
END
/* erwin Builtin Trigger */
/* Cat Favor_Food on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Cat"
CHILD_OWNER="", CHILD_TABLE="Favor_Food"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_8", FK_COLUMNS="ID_Cat" */
IF EXISTS (
SELECT * FROM deleted,Favor_Food
WHERE
/* %JoinFKPK(Favor_Food,deleted," = "," AND") */
Favor_Food.ID_Cat = deleted.ID_Cat
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Cat because Favor_Food exists.'
GOTO error
END
/* erwin Builtin Trigger */
/* Cat Settlement on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Cat"
CHILD_OWNER="", CHILD_TABLE="Settlement"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_6", FK_COLUMNS="Cat" */
IF EXISTS (
SELECT * FROM deleted,Settlement
WHERE
/* %JoinFKPK(Settlement,deleted," = "," AND") */
Settlement.Cat = deleted.ID_Cat
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Cat because Settlement exists.'
GOTO error
END
/* erwin Builtin Trigger */
/* Cat Add_Colors on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Cat"
CHILD_OWNER="", CHILD_TABLE="Add_Colors"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_3", FK_COLUMNS="ID_Cat" */
IF EXISTS (
SELECT * FROM deleted,Add_Colors
WHERE
/* %JoinFKPK(Add_Colors,deleted," = "," AND") */
Add_Colors.ID_Cat = deleted.ID_Cat
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Cat because Add_Colors exists.'
GOTO error
END
/* erwin Builtin Trigger */
RETURN
error:
RAISERROR (@errmsg, -- Message text.
@severity, -- Severity (0~25).
@state) -- State (0~255).
rollback transaction
END
go
CREATE TRIGGER tD_Color ON Color FOR DELETE AS
/* erwin Builtin Trigger */
/* DELETE trigger on Color */
BEGIN
DECLARE @errno int,
@severity int,
@state int,
@errmsg varchar(255)
/* erwin Builtin Trigger */
/* Color Add_Colors on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="0001e8de", PARENT_OWNER="", PARENT_TABLE="Color"
CHILD_OWNER="", CHILD_TABLE="Add_Colors"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_4", FK_COLUMNS="ID_Color" */
IF EXISTS (
SELECT * FROM deleted,Add_Colors
WHERE
/* %JoinFKPK(Add_Colors,deleted," = "," AND") */
Add_Colors.ID_Color = deleted.ID_Color
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Color because Add_Colors exists.'
GOTO error
END
/* erwin Builtin Trigger */
/* Color Cat on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Color"
CHILD_OWNER="", CHILD_TABLE="Cat"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_1", FK_COLUMNS="Base_Color" */
IF EXISTS (
SELECT * FROM deleted,Cat
WHERE
/* %JoinFKPK(Cat,deleted," = "," AND") */
Cat.Base_Color = deleted.ID_Color
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Color because Cat exists.'
GOTO error
END
/* erwin Builtin Trigger */
RETURN
error:
RAISERROR (@errmsg, -- Message text.
@severity, -- Severity (0~25).
@state) -- State (0~255).
rollback transaction
END
go
CREATE TRIGGER tD_Food_Taste ON Food_Taste FOR DELETE AS
/* erwin Builtin Trigger */
/* DELETE trigger on Food_Taste */
BEGIN
DECLARE @errno int,
@severity int,
@state int,
@errmsg varchar(255)
/* erwin Builtin Trigger */
/* Food_Taste Feeding on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="000210cd", PARENT_OWNER="", PARENT_TABLE="Food_Taste"
CHILD_OWNER="", CHILD_TABLE="Feeding"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_12", FK_COLUMNS="Food_Taste" */
IF EXISTS (
SELECT * FROM deleted,Feeding
WHERE
/* %JoinFKPK(Feeding,deleted," = "," AND") */
Feeding.Food_Taste = deleted.ID_Food_Taste
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Food_Taste because Feeding exists.'
GOTO error
END
/* erwin Builtin Trigger */
/* Food_Taste Favor_Food on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Food_Taste"
CHILD_OWNER="", CHILD_TABLE="Favor_Food"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_10", FK_COLUMNS="ID_Food_Taste" */
IF EXISTS (
SELECT * FROM deleted,Favor_Food
WHERE
/* %JoinFKPK(Favor_Food,deleted," = "," AND") */
Favor_Food.ID_Food_Taste = deleted.ID_Food_Taste
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Food_Taste because Favor_Food exists.'
GOTO error
END
/* erwin Builtin Trigger */
RETURN
error:
RAISERROR (@errmsg, -- Message text.
@severity, -- Severity (0~25).
@state) -- State (0~255).
rollback transaction
END
go
CREATE TRIGGER tD_Food_Type ON Food_Type FOR DELETE AS
/* erwin Builtin Trigger */
/* DELETE trigger on Food_Type */
BEGIN
DECLARE @errno int,
@severity int,
@state int,
@errmsg varchar(255)
/* erwin Builtin Trigger */
/* Food_Type Feeding on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="0001fcd8", PARENT_OWNER="", PARENT_TABLE="Food_Type"
CHILD_OWNER="", CHILD_TABLE="Feeding"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_13", FK_COLUMNS="Food_Type" */
IF EXISTS (
SELECT * FROM deleted,Feeding
WHERE
/* %JoinFKPK(Feeding,deleted," = "," AND") */
Feeding.Food_Type = deleted.ID_Food_Type
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Food_Type because Feeding exists.'
GOTO error
END
/* erwin Builtin Trigger */
/* Food_Type Favor_Food on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Food_Type"
CHILD_OWNER="", CHILD_TABLE="Favor_Food"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_9", FK_COLUMNS="ID_Food_Type" */
IF EXISTS (
SELECT * FROM deleted,Favor_Food
WHERE
/* %JoinFKPK(Favor_Food,deleted," = "," AND") */
Favor_Food.ID_Food_Type = deleted.ID_Food_Type
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Food_Type because Favor_Food exists.'
GOTO error
END
/* erwin Builtin Trigger */
RETURN
error:
RAISERROR (@errmsg, -- Message text.
@severity, -- Severity (0~25).
@state) -- State (0~255).
rollback transaction
END
go
CREATE TRIGGER tD_Owner ON Owner FOR DELETE AS
/* erwin Builtin Trigger */
/* DELETE trigger on Owner */
BEGIN
DECLARE @errno int,
@severity int,
@state int,
@errmsg varchar(255)
/* erwin Builtin Trigger */
/* Owner Cat on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="0000f4a1", PARENT_OWNER="", PARENT_TABLE="Owner"
CHILD_OWNER="", CHILD_TABLE="Cat"
P2C_VERB_PHRASE="", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_5", FK_COLUMNS="Owner" */
IF EXISTS (
SELECT * FROM deleted,Cat
WHERE
/* %JoinFKPK(Cat,deleted," = "," AND") */
Cat.Owner = deleted.ID_Owner
)
BEGIN
SELECT @errno = 30001,
@errmsg = 'Cannot delete Owner because Cat exists.'
GOTO error
END
/* erwin Builtin Trigger */
RETURN
error:
RAISERROR (@errmsg, -- Message text.
@severity, -- Severity (0~25).
@state) -- State (0~255).
rollback transaction
END
go