> 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

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro - Publié le 24 juin 2010