J'ai un morceau de script que je veux exécuter plusieurs fois chaque nuit, basé sur un nombre incertain d'éléments dans une table (random, tous les soirs). Je prévois de l'exécuter toutes les 5/10 minutes.
La procédure search un élément dans la table principale et le clone sur les autres tables nécessaires.
Fondamentalement, je pouvais juste laisser le script s'exécuter et ça échouerait à chaque fois, mais je veux être un peu plus malin et économiser sur tous les messages d'erreur.
Comment puis-je d'abord déterminer si un élément doit être cloné … puis exécuter ou annuler le script en fonction du résultat?
J'ai essayé;
BEGIN TRY --Procedure END TRY BEGIN CATCH --Procedure END CATCH
Mais cela semble juste exécuter de toute façon, avec les erreurs …
Ou peut-être une déclaration IF serait une meilleure approche?
Merci!
IF
serait le path à parcourir:
IF EXISTS (/*Statement to check if rows exist*/) BEGIN --Procedure END
Si la condition IF
n'est pas satisfaite, la procédure ne sera pas exécutée. Vous avez juste besoin de comprendre une vérification appropriée.
IF EXISTS (SELECT * FROM MyTable WHERE myConditions) BEGIN INSERT INTO OtherTable SELECT * FROM MyTable WHERE myConditions END