> Tech > Déclencheur pour capture des UPDATE

Déclencheur pour capture des UPDATE

Tech - Par iTPro - Publié le 24 juin 2010
email

Il devra revêtir la forme : voir listing 5. On peut, bien entendu le créer dynamiquement dans la foulée de la table d'historisation dans le déclencheur DDL: voir listing 6.

Listing 5
CREATE TRIGGER E_D_CLI
ON dbo.T_CLIENT_CLI
FOR DELETE
AS
BEGIN

Déclencheur pour capture des UPDATE

INSERT INTO DB_HST_LIGNE.dbo.T_CLIENT_CLI
(_MA, _MD, CLI_ID, CLI_NOM, CLI_PRENOM)
SELECT client_net_address, ‘D’, d.*
FROM deleted d
CROSS JOIN sys.dm_exec_connections
WHERE session_id = @@SPID
END

Listing 6
— création du déclencheur DDL
SET @SQL = ‘CREATE TRIGGER E_U_’ + SUBSTRING(@TAB, LEN(@TAB) -2,
3) +
‘ ON ‘ + @SCH + ‘.’ + @TAB +
‘ FOR UPDATE AS BEGIN SET NOCOUNT ON INSERT INTO
DB_HST_LIGNE.’
+ @SCH + ‘.’ + @TAB + ‘ (_MA, _MD, ‘;
SELECT @SQL = @SQL + COLUMN_NAME + ‘, ‘
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @SCH
AND TABLE_NAME = @TAB;
SET @SQL = SUBSTRING(@SQL, 1, LEN(@SQL) – 1) + ‘) ‘+
‘SELECT client_net_address,  »U », i.* ‘ +
‘FROM inserted i ‘ +
‘CROSS JOIN sys.dm_exec_connections ‘ +
‘WHERE session_id = @@SPID ‘ +
‘END ‘
EXEC (@SQL);

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Tech - Par iTPro - Publié le 24 juin 2010