-
Requête sans action
Bonjour
Parfois j'ai besoin d'insérer une requête qui ne produise aucune action (parmi d'autres requêtes séparées par des point-virgules).
Pour le moment j'utilise
Code:
SELECT * FROM Table WHERE 1=0
N'y a t-il rien de prévu en SQL pour faire ça plus proprement, un peu dans le style de la commande ftp NOOP ?
MErci
-
Bonsoir,
La commande SELECT ne fait aucune mise à jour sur une base de données.
Ainsi votre requête devient :
Code:
SELECT * FROM TABLE
Elle ne vous retournera que tout ce que contient la table TABLE.
-
Merci mais ce n'était pas ma question et...cette requête ne retourne rien (donc pas la table) :?
-
Bonsoir,
En fait vous voulez faire une requête qui ne fasse absolument rien, c'est moi qui ai mal compris :aie:
Que devez-vous obtenir ? un texte, ...
-
Je n'ai pas compris non plus : pourquoi as-tu besoin d'une requête qui ne produit aucune action. Peux-tu nous en dire un peu plus ?
-
OK, j'envoie une suite de requetes en batch, par exemple 5 requetes:
Code:
"requete1;requete2;requete3;requete4;requete5;"
Je les envoie en asynchrone, et je récupère les recordset quand tout est fini d'executer.
Admettons que dans certains cas de figure je n'ai pas besoin d'éxécuter la requete3, mais j'ai pas envie d'envoyer "requete1;requete2;requete4;requete5;" car à la réception je vais être enquiquiné pour analyser les recordsets retournés du fait qu'il en manque un dans la liste, et si mon code l'a pas prévu ca va planter.
Donc je veux remplacer requete3 par une requete sans effet afin de ne pas exécuter inutilement des requetes vu que mon serveur travaille déjà en flux assez tendu...:mouarf:
-
Du reste existe t-il une commande WAIT ou équivalent ? Un truc comme "WAIT 0;" ca pourrait marcher...
-
Je ne suis pas sûr d'y voir assez clair mais voici ce à quoi je pense
- Dans chacunes de tes requêtes, tu ajoutes un champs bidon par exemple "Query_ID". Par exemple, pour la requête 1 "Select 1 As Query_ID, Nom, Prénom, ... FROM ...". Pour la requête 2, tu initialises le champs Query_ID à 2. Etc.
- Lors de l'analyse de ton recordset, tu vérifies seulement la présence de ligne ayant un Query_ID à 3 pour savoir si la troisième requête a retourné quelque chose.
Est-ce applicable dans ton cas ?
-
Oui merci ça peut toujours aider mais je voulais savoir si ce type de requêtes existait.
-
Bonsoir,
Pour le WAIT dont vous parliez, il existe WAITFOR :
Code:
WAITFOR DELAY '00:02:30'
Attendra deux minutes et 30 secondes avant l'exécution de la commande suivante.
S'il n'y a pas de commande suivante, attend deux minutes et 30 secondes également.
-
MErci c'est exactement ce que je voulais :king: