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

@errmsg  varchar(255)

SELECT @NUMROWS = @@rowcount

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

/* Партнер R/12 Клиенты on parent update no action */

/* ERWIN_RELATION:CHECKSUM="000119da", 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

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

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/6 Сотрудники on parent delete no action */

/* ERWIN_RELATION:CHECKSUM="00025b02", PARENT_OWNER="", PARENT_TABLE="Послужной_список"

CHILD_OWNER="", CHILD_TABLE="Сотрудники"

P2C_VERB_PHRASE="R/6", C2P_VERB_PHRASE="R/6",

FK_CONSTRAINT="R_6", FK_COLUMNS="Код_списка" */

IF EXISTS (

SELECT * FROM deleted,Сотрудники

WHERE

/*  %JoinFKPK(Сотрудники,deleted," = "," AND") */

Сотрудники.Код_списка = deleted.Код_списка

)

BEGIN

SELECT @errno  = 30001,

@errmsg = 'Cannot delete Послужной_список because Сотрудники exists.'

GOTO ERROR

END

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

/* Должность R/7 Послужной_список on child delete no action */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Должность"

CHILD_OWNER="", CHILD_TABLE="Послужной_список"

P2C_VERB_PHRASE="R/7", C2P_VERB_PHRASE="R/7",

FK_CONSTRAINT="R_7", 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/6 Сотрудники on parent update no action */

/* ERWIN_RELATION:CHECKSUM="0002a035", PARENT_OWNER="", PARENT_TABLE="Послужной_список"

CHILD_OWNER="", CHILD_TABLE="Сотрудники"

P2C_VERB_PHRASE="R/6", C2P_VERB_PHRASE="R/6",

FK_CONSTRAINT="R_6", FK_COLUMNS="Код_списка" */

IF

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

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