J'ai une table Shoppping List
avec des colonnes telles que:
shopID, Product, DateTimeShopped, PaiedOrNot, ListStatus
Mon exigence est de comparer le datetime actuel avec DateTimeShopped
, si la list d'achats n'est toujours pas payée après 5 jours, puis étiquetez automatiquement le ListStatus
à ListStatus
.
Comment puis-je gérer le problème de time dans un triggersur dans SQL Server?
Merci.
Créer un SP ShoppingListSP
declare @current datetime set @current = (select GETDATE() ) if ( datediff(@DateTimeShopped,@current ) > 5) begin update [Shopping List] set ListStatus = 'Blocked' where id=123123 end
Créez ensuite un travail SQL qui exécute ce SP toutes les heures en arrière-plan.
exec ShoppingListSP
vous pourriez aussi avoir besoin de Curseurs pour travailler sur un set de données, ligne par ligne.
Réponse courte Tu ne peux pas.
Longue réponse Il est possible d'exécuter plus d'une simple déclaration à partir d'un triggersur, cependant, ce ne serait pas le meilleur endroit pour cela.
Une autre option . Je voudrais insert datatables dans une autre table et exécuter un proc stocké à partir de Sql Agent pour l'action en conséquence.