Разработка логического и физического уровней модели данных с помощью CASE-средства. Практические навыки логического и физического проектирования реляционных данных с использованием средств программного пакета AllFusion ERwin Data Modeler, страница 8

@errmsg = 'Cannot delete last Клиенты because Знак_задиака exists.'

GOTO ERROR

END

/* ERwin Builtin 18 марта 2014 г. 8:14:00 */

/* Параметры R/17 Клиенты on child delete no action */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="Возраст", PARENT_TABLE="Параметры"

CHILD_OWNER="", CHILD_TABLE="Клиенты"

P2C_VERB_PHRASE="R/17", C2P_VERB_PHRASE="R/17",

FK_CONSTRAINT="R_17", FK_COLUMNS="Код_параметра" */

IF EXISTS (SELECT * FROM deleted,Параметры

WHERE

/* %JoinFKPK(deleted,Параметры," = "," AND") */

deleted.Код_параметра = Параметры.Код_параметра AND

NOT EXISTS (

SELECT * FROM Клиенты

WHERE

/* %JoinFKPK(Клиенты,Параметры," = "," AND") */

Клиенты.Код_параметра = Параметры.Код_параметра

)

)

BEGIN

SELECT @errno  = 30010,

@errmsg = 'Cannot delete last Клиенты because Параметры exists.'

GOTO ERROR

END

/* ERwin Builtin 18 марта 2014 г. 8:14:00 */

/* Развитие R/18 Клиенты on child delete no action */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Развитие"

CHILD_OWNER="", CHILD_TABLE="Клиенты"

P2C_VERB_PHRASE="R/18", C2P_VERB_PHRASE="R/18",

FK_CONSTRAINT="R_18", FK_COLUMNS="Код_развития" */

IF EXISTS (SELECT * FROM deleted,Развитие

WHERE

/* %JoinFKPK(deleted,Развитие," = "," AND") */

deleted.Код_развития = Развитие.Код_развития AND

NOT EXISTS (

SELECT * FROM Клиенты

WHERE

/* %JoinFKPK(Клиенты,Развитие," = "," AND") */

Клиенты.Код_развития = Развитие.Код_развития

)

)

BEGIN

SELECT @errno  = 30010,

@errmsg = 'Cannot delete last Клиенты because Развитие exists.'

GOTO ERROR

END

/* ERwin Builtin 18 марта 2014 г. 8:14:00 */

/* Хобби R/19 Клиенты on child delete no action */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Хобби"

CHILD_OWNER="", CHILD_TABLE="Клиенты"

P2C_VERB_PHRASE="R/19", C2P_VERB_PHRASE="R/19",

FK_CONSTRAINT="R_19", FK_COLUMNS="Код_хобби" */

IF EXISTS (SELECT * FROM deleted,Хобби

WHERE

/* %JoinFKPK(deleted,Хобби," = "," AND") */

deleted.Код_хобби = Хобби.Код_хобби AND

NOT EXISTS (

SELECT * FROM Клиенты

WHERE

/* %JoinFKPK(Клиенты,Хобби," = "," AND") */

Клиенты.Код_хобби = Хобби.Код_хобби

)

)

BEGIN

SELECT @errno  = 30010,

@errmsg = 'Cannot delete last Клиенты because Хобби exists.'

GOTO ERROR

END

/* ERwin Builtin 18 марта 2014 г. 8:14:00 */

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tU_Клиенты ON Клиенты FOR UPDATE AS

/* ERwin Builtin 18 марта 2014 г. 8:14:00 */

/* UPDATE trigger on Клиенты */

BEGIN

DECLARE  @NUMROWS int,

@nullcnt int,

@validcnt int,

@insКод_клиента integer,

@errno   int,

@errmsg  varchar(255)

SELECT @NUMROWS = @@rowcount

/* ERwin Builtin 18 марта 2014 г. 8:14:00 */

/* Заказы R/9 Клиенты on child update no action */

/* ERWIN_RELATION:CHECKSUM="000a77ff", PARENT_OWNER="", PARENT_TABLE="Заказы"

CHILD_OWNER="", CHILD_TABLE="Клиенты"

P2C_VERB_PHRASE="R/9", C2P_VERB_PHRASE="R/9",

FK_CONSTRAINT="R_9", FK_COLUMNS="Код_заказа" */

IF

/* %ChildFK(" OR",UPDATE) */

UPDATE(Код_заказа)

BEGIN

SELECT @nullcnt = 0

SELECT @validcnt = count(*)

FROM inserted,Заказы

WHERE

/* %JoinFKPK(inserted,Заказы) */

inserted.Код_заказа = Заказы.Код_заказа

/* %NotnullFK(inserted," IS NULL","select @nullcnt = count(*) from inserted where"," AND") */

select @nullcnt = count(*) from inserted where

inserted.Код_заказа IS NULL

IF @validcnt + @nullcnt != @NUMROWS

BEGIN

SELECT @errno  = 30007,

@errmsg = 'Cannot update Клиенты because Заказы does not exist.'