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 :

[SQL SVR 2K] Valeur d'un exec


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Franck2mars
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Par défaut [SQL SVR 2K] Valeur d'un exec
    Salut a tous,

    je cherche a récupérer la valeur renvoyée par un exec('requete'), quelqu'un sait il comment fait on?
    Voila mon exemple :
    set @query='Select count(*) as nb_tuples from I_VENDOR ' + rtrim(@parametre)
    exec(@query)
    Je veux récupérer la valeur de nb_tuples
    Merci,

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Utilises sp_executesql. Tu peux lui envoyer des paramètres, et les déclarer OUTPUT.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DECLARE @i INT, @sql NVARCHAR(1000) 
     
    SET @sql = N'SELECT @i = COUNT(*) FROM dbo.matable' 
     
    EXEC sp_executesql 
        @query = @sql, 
        @params = N'@i INT OUTPUT', 
        @i = @i OUTPUT 
     
    PRINT @i
    --
    Rudi Bruchez

  3. #3
    Membre confirmé Avatar de Franck2mars
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Par défaut
    J'ai essayé ta méthode mais cela ne fonctionne pas , peut etre que j'ai mal utilisé :
    SET @sql = @query --N'SELECT @i = COUNT(*) FROM dbo.matable'

    EXEC sp_executesql
    @query = @sql,
    @params = N'@i INT OUTPUT',
    @i = @i OUTPUT

    print @i
    if @i = 0
    begin
    print('OK')
    end
    Normalement il devrait rentrer ds le si car la requete renvoie 0.
    Comment cela se fait?

    Merci

  4. #4
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    En effet, ça devrait marcher. Ceci fonctionne, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    DECLARE @i INT, @sql NVARCHAR(1000) 
     
    SET @sql = 'SELECT @i = COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE 1 = 0'
     
    EXEC sp_executesql
    @query = @sql,
    @params = N'@i INT OUTPUT',
    @i = @i OUTPUT
     
    print @i
    if @i = 0
    begin
    print('OK')
    end
    Es-tu sûr que tu attribues la valeur de COUNT(*) à ta variable dans la chaîne que tu génères ?

    --
    Rudi Bruchez

  5. #5
    Membre confirmé Avatar de Franck2mars
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Par défaut
    Voila la ligne que j'avais mal appliqué...
    SET @sql = 'SELECT @i = COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE 1 = 0'
    merci maintenant ca marche au top

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

Discussions similaires

  1. SQL et GUID : Valeur de caractère non valide pour la ....
    Par jackfirst72 dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/03/2007, 10h46
  2. [PL/SQL]Récupere la valeure courante d'un trigger
    Par ludovic85 dans le forum Oracle
    Réponses: 11
    Dernier message: 08/08/2006, 15h16
  3. [SQL] copier la valeur de plusieurs champs
    Par Ben_Le_Cool dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/04/2006, 18h10
  4. Probleme de requete SQL avec la valeur NULL
    Par samyghan dans le forum Installation
    Réponses: 8
    Dernier message: 12/03/2006, 17h24
  5. [Sql] susbstr et valeur décimale
    Par arezki76 dans le forum Oracle
    Réponses: 1
    Dernier message: 26/12/2005, 11h16

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