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

Développement SQL Server Discussion :

SELECT @param VS SET @param ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 123
    Par défaut SELECT @param VS SET @param ?
    Bonjour à tous,

    J'ai une question qui m'intrigue:

    Dans une procédure stockée je manipule des paramètres que je leur affecte une valeur avant de les insérer dans ma base. Pour affecter une nouvelle valeur à mon paramètre @param tantôt j'utilise SELECT @param = valeur, tantôt j'utilise SET @param = valeur.

    Ma question est Quelle est la différence entre ces deux commandes(SET et SELECT)?
    Sachant qu'après ma commande je fais un test sur @@ROWCOUNT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DECLARE @param INT
    SET/SELECT @param = (SELECT MonParam FROM maTable WHERE TOTO = CRITERE)
    IF @@ROWCOUNT < 1
    SET/SELECT @param = ValeurParDefaut
    Merci pour votre aide.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    SELECT permet d'affecter plusieurs variables simultanément. Il est préférable d'utiliser le SELECT si multi affectation. Il y a des cas ou c'est indispensable !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 123
    Par défaut
    Merci pour votre réponse SQLpro, maintenant je vois la différence entre les deux commandes.
    Citation Envoyé par SQLpro Voir le message
    SELECT permet d'affecter plusieurs variables simultanément. Il est préférable d'utiliser le SELECT si multi affectation. Il y a des cas ou c'est indispensable !

    A +

  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 : 44
    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
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT @param = (SELECT MonParam FROM maTable WHERE TOTO = CRITERE)
    Vous pouvez aussi écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT @param = MonParam FROM maTable WHERE TOTO = CRITERE
    @++

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

Discussions similaires

  1. Passage de param xm-xsl-param
    Par snopims dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 08/08/2011, 10h28
  2. RewriteRule : html + param vers php + param
    Par didleur dans le forum Apache
    Réponses: 2
    Dernier message: 26/11/2008, 22h31
  3. tag param -> récupérer le param dans l'action
    Par laurent.c123 dans le forum JSF
    Réponses: 6
    Dernier message: 06/11/2007, 13h41
  4. [HQL]select conditionnel avec set
    Par Glum147 dans le forum Hibernate
    Réponses: 4
    Dernier message: 10/11/2006, 15h01
  5. [XSLT]Atteindre un node set dans xsl:param
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 02/10/2006, 11h21

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