Gestion des erreurs SQL Server, déterminez si l'logging existe, puis exécutez la procédure

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