1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| USE INNO_ADMIN;
GO
CREATE TABLE S_OPERATIONAL.T_PLANIFIED_EMPLOYEE_PEM(
PEM_ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
PEM_CREATED_ON DATETIME2 NOT NULL DEFAULT GETDATE(),
PEM_CREATED_BY VARCHAR(100) NOT NULL DEFAULT SYSTEM_USER
)
GO
CREATE TABLE S_OPERATIONAL.T_REAL_EMPLOYEE_REM(
PEM_ID INT NOT NULL PRIMARY KEY REFERENCES S_OPERATIONAL.T_PLANIFIED_EMPLOYEE_PEM(PEM_ID),
EMP_ID INT NOT NULL UNIQUE REFERENCES S_HR.T_EMPLOYEE_EMP(EMP_ID),
REM_CREATED_ON DATETIME2 NOT NULL DEFAULT GETDATE(),
REM_CREATED_BY VARCHAR(100) NOT NULL DEFAULT SYSTEM_USER
)
GO
CREATE TABLE S_OPERATIONAL.T_FICTITIOUS_EMPLOYEE_FEM(
PEM_ID INT NOT NULL PRIMARY KEY REFERENCES S_OPERATIONAL.T_PLANIFIED_EMPLOYEE_PEM(PEM_ID),
STR_ID TINYINT NOT NULL REFERENCES dbo.T_STORE_STR(STR_ID),
FEM_CREATED_ON DATETIME2 NOT NULL DEFAULT GETDATE(),
FEM_CREATED_BY VARCHAR(100) NOT NULL DEFAULT SYSTEM_USER
)
GO
CREATE TRIGGER TRG_INS_T_REAL_EMPLOYEE_REM
ON S_OPERATIONAL.T_REAL_EMPLOYEE_REM
FOR INSERT, UPDATE
AS
BEGIN
DECLARE
@ERRNO INT,
@ERRMSG VARCHAR(255)
/* LA VALEUR DE PEM_ID NE DOIT PAS ETRE UTILISEE DANS UNE AUTRE TABLE FILLE */
IF EXISTS( SELECT
*
FROM
S_OPERATIONAL.T_FICTITIOUS_EMPLOYEE_FEM
WHERE
PEM_ID IN ( SELECT
PEM_ID
FROM
INSERTED))
BEGIN
SET @errno = 30002
SET @errmsg = 'Clef de T_PLANIFIED_EMPLOYEE_PEM déjà utilisée ailleurs. Insertion dans T_REAL_EMPLOYEE_REM impossible.'
GOTO LBL_ERROR
END
/*GESTION D'ERREURS*/
LBL_ERROR:
RAISERROR @ERRNO @ERRMSG
ROLLBACK TRANSACTION
END
GO
CREATE TRIGGER TRG_INS_T_FICTITIOUS_EMPLOYEE_FEM
ON S_OPERATIONAL.T_FICTITIOUS_EMPLOYEE_FEM
FOR INSERT, UPDATE
AS
BEGIN
DECLARE
@ERRNO INT,
@ERRMSG VARCHAR(255)
/* LA VALEUR DE PEM_ID NE DOIT PAS ETRE UTILISEE DANS UNE AUTRE TABLE FILLE */
IF EXISTS( SELECT
*
FROM
S_OPERATIONAL.T_REAL_EMPLOYEE_REM
WHERE
PEM_ID IN ( SELECT
PEM_ID
FROM
INSERTED))
BEGIN
SET @errno = 30002
SET @errmsg = 'Clef de T_PLANIFIED_EMPLOYEE_PEM déjà utilisée ailleurs. Insertion dans T_FICTITIOUS_EMPLOYEE_FEM impossible.'
GOTO LBL_ERROR
END
/*GESTION D'ERREURS*/
LBL_ERROR:
RAISERROR @ERRNO @ERRMSG
ROLLBACK TRANSACTION
END |
Partager