IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Requête sans action


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonsoir,

    La commande SELECT ne fait aucune mise à jour sur une base de données.
    Ainsi votre requête devient :

    Elle ne vous retournera que tout ce que contient la table TABLE.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Merci mais ce n'était pas ma question et...cette requête ne retourne rien (donc pas la table)

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonsoir,

    En fait vous voulez faire une requête qui ne fasse absolument rien, c'est moi qui ai mal compris
    Que devez-vous obtenir ? un texte, ...

  5. #5
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 792
    Points : 3 061
    Points
    3 061
    Par défaut
    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 ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    OK, j'envoie une suite de requetes en batch, par exemple 5 requetes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "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...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Du reste existe t-il une commande WAIT ou équivalent ? Un truc comme "WAIT 0;" ca pourrait marcher...

  8. #8
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 792
    Points : 3 061
    Points
    3 061
    Par défaut
    Je ne suis pas sûr d'y voir assez clair mais voici ce à quoi je pense
    1. 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.
    2. 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 ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Oui merci ça peut toujours aider mais je voulais savoir si ce type de requêtes existait.

  10. #10
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonsoir,

    Pour le WAIT dont vous parliez, il existe WAITFOR :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    MErci c'est exactement ce que je voulais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requête sans prendre en compte la casse
    Par clems34 dans le forum PostgreSQL
    Réponses: 13
    Dernier message: 13/04/2009, 16h50
  2. Réponses: 6
    Dernier message: 09/06/2006, 18h22
  3. requête sans réponse
    Par Pau dans le forum Access
    Réponses: 5
    Dernier message: 02/06/2006, 14h28
  4. RecordSource avec une requête sans résultat
    Par temar dans le forum Access
    Réponses: 4
    Dernier message: 23/05/2006, 18h13
  5. Exécution d'une requête sans stocker les transactions
    Par Actarus69 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 24/03/2006, 12h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo