> Tech > Déclencheur pour capture des DELETE

Déclencheur pour capture des DELETE

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

Il n'est guère plus compliqué que le précédent : voir listing 7. Et peut, comme précédemment, être créé dynamiquement dans la foulée de la table d'historisation dans le déclencheur DDL : voir listing 8. Dans le cas où l'on aurait choisit de ne pas tenir compte des évolutions du schéma

Déclencheur pour capture des DELETE

des tables traquées, alors il conviendrait de modifier les déclencheurs afin que soient spécifiées de manière exhaustive les colon – nes cibles dans les insertions des tables d’historisation.

Listing 7
CREATE TRIGGER dbo.E_D_CLI
ON dbo.T_CLIENT_CLI
FOR DELETE
AS
BEGIN
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 8
SET @SQL = ‘CREATE TRIGGER E_D_’ + SUBSTRING(@TAB, LEN(@TAB) -2, 3) +
‘ ON ‘ + @SCH + ‘.’ + @TAB +
‘ FOR DELETE AS SET NOCOUNT ON BEGIN 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,  »D », d.* ‘ +
‘FROM deleted d ‘ +
‘CROSS JOIN sys.dm_exec_connections ‘ +
‘WHERE session_id = @@SPID ‘ +
‘END ‘
EXEC (@SQL);

Téléchargez gratuitement cette ressource

HP Elite Slice G2 : optimisez la collaboration… et votre budget !

HP Elite Slice G2 : optimisez la collaboration… et votre budget !

Téléchargez cette étude Forrester et découvrez comment booster la collaboration tout en dégageant un excellent R.O.I grâce au système de vidéoconférence HP Elite Slice G2 avec Microsoft Teams !

Tech - Par iTPro - Publié le 24 juin 2010