J'ai une table qui a deux attributes: ID & Datetime quand cet logging a été créé. Comment puis-je faire un triggersur (procédure?) Pour supprimer un logging après, disons, 1 jour?
Edit: Ajout 'automatiquement' dans le titre, ce qui implique que je veux une tâche qui s'exécute elle-même toutes les X fois au lieu de devoir le faire manuellement.
Je vous suggère d'utiliser l'agent SQL Server et d'écrire une procédure stockée qui supprime toutes les lignes que la date est passée un jour.
Vous pouvez find comment utiliser les jobs d'agent server Sql ici:
https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job
et la procédure stockée comme:
CREATE PROCEDURE DeleteRows() AS BEGIN DELETE FROM mytable WHERE (DATEDIFF(DAY, DATEADD(day, -1, DateColum), GETDATE())) >= 1 END
Edit: Le numéro 1 dans où l'instruction est des jours. vous pouvez le changer pour ce que vous voulez utiliser.
L'instruction de supprimer un logging de plus d'un jour est la suivante:
DELETE FROM tableName WHERE DATEDIFF(day, getdate(), dateColumn) < -1
Vous auriez besoin de cron cette déclaration en utilisant la langue que vous avez disponible, php par exemple.
Cela dit, bien sûr, il est difficile d'imaginer un scénario où vous voudriez supprimer des loggings en premier lieu;)
Vous pouvez créer un travail SQL à exécuter après un jour (ou tous les jours comme vous le souhaitez.) Et exécuter une procédure stockée spécifiée qui porte une instruction de suppression simple.
Suivez le sujet suivant: –