Bonjour,
J'ai une Procédure Stockée qui, à partir de variables en entrée, me créé dynamiquement une requête sous forme de chaine que j’exécute à la fin avec la commande;exec(@machaine)
Jusque-là, tout va bien.
Mon souci, c'est que, avant d’exécuter ma requête, j'aimerais savoir si elle va me retourner des lignes, car si elle ne me retourne rien, j'aimerais ne pas l’exécuter et exécuter une autre requête.
Le but, me retourner dans la Tables(0) un résultat soit par la requête créée dynamiquement, soit par ma requête alternative.
De cette manière, je ne me souci pas de qui a trouvé quoi, j'ai toujours un résultat.
En gros :
En entrée : declare @myVar1 as int = 0, declare @myVar2 as int = 0, declare @myVar3 as int = 0, ..etc...
Puis, en variable interne je fais : declare @machaine as varchar(max) = ''
Puis, ma procédure stockée réalise un traitement qui me génère une requête complète en fonction des données fournies dans les variables en entrée :
Au final j'obtiens un truc du genre (je simplifie) @machaine = 'select * from maTable ....'
Avant de lancer la commande exec(@machaine) en fin de procédure stockée, j'aimerais faire un truc du style select count(*) ... et si c'est égal à zéro, je lance une requête alternative.
Est-ce possible de faire un truc comme ça ? Ou faut-il voir cela autrement ?
Merci de votre aide.
Cordialement.
Partager