> Tech > Déclencheur pour capture des UPDATE

Déclencheur pour capture des UPDATE

Tech - Par Renaud ROSSET - 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 cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010