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

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

BEGIN

IF EXISTS (

SELECT * FROM deleted,Клиенты

WHERE

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

Клиенты.Код_знака = deleted.Код_знака

)

BEGIN

SELECT @errno  = 30005,

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

GOTO ERROR

END

END

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

RETURN

ERROR:

raiserror @errno @errmsg

rollback transaction

END

go

CREATE TRIGGER tD_Клиенты ON Клиенты FOR DELETE AS

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

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

BEGIN

DECLARE  @errno   int,

@errmsg  varchar(255)

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

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

/* ERWIN_RELATION:CHECKSUM="0008a0ef", 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 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/12 Клиенты on child delete no action */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Партнер"

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

P2C_VERB_PHRASE="R/12", C2P_VERB_PHRASE="R/12",

FK_CONSTRAINT="R_12", 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/13 Клиенты on child delete no action */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Национальность"

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

P2C_VERB_PHRASE="R/13", C2P_VERB_PHRASE="R/13",

FK_CONSTRAINT="R_13", 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/14 Клиенты on child delete no action */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Знак_задиака"

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

P2C_VERB_PHRASE="R/14", C2P_VERB_PHRASE="R/14",

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

IF EXISTS (SELECT * FROM deleted,Знак_задиака

WHERE

/* %JoinFKPK(deleted,Знак_задиака," = "," AND") */

deleted.Код_знака = Знак_задиака.Код_знака AND

NOT EXISTS (

SELECT * FROM Клиенты

WHERE

/* %JoinFKPK(Клиенты,Знак_задиака," = "," AND") */

Клиенты.Код_знака = Знак_задиака.Код_знака

)

)

BEGIN

SELECT @errno  = 30010,