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

  1. #1
    Membre régulier
    [SQL SERVER]Création table de Login avec création mot pass
    Création d'une table de Login avec création d'un mot de passe basé (en partie) sur le contenu d'une table


    Bonjour,

    L'en-tête du message à rallonge risque d'effrayer, mais ça me semble + clair.

    Je dispose d'une table Annuaire avec les colonnes Nom, Prenom, Email.

    Je dispose d'une table PAYS avec les colonnes ID, Pays.
    Cette table me sert de base pour la création du mot de passe. J'ai choisi pays mais ça aurait pu être n'importe quoi d'autre.

    J'ai créé une table LOGIN qui contient les colonnes Login, Email, Password.

    La colonne Login contiendra les prenom + nom concaténés de la table Annuaire,
    La colonne Email récupérera la colonne Email de la table Annuaire,

    J'aimerais que la colonne Password contienne un pays suivi d'un nombre aléatoire (entre 0 et 200)

    C'est ce qui me pose problème.

    En oubliant momentanément la génération du mot de passe, j'obtiens la requête suivante :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO WifiLogin 
     (Login, Email, Password) 
    (  
    SELECT     { fn LCASE(Annuaire.Prenom) } + '.' + { fn LCASE(Annuaire.Nom) } AS Login, Annuaire.Email,
                            'mot de passe' AS Password
    FROM Annuaire )


    En cherchant à générer le mot de passe, j'arrive à
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    SELECT Pays + CONVERT(varchar, round((rand() * 200), 0)) AS Password
    FROM         Pays ORDER BY NEWID()



    mais bien entendu, ça renvoit le nom du Pays concaténé avec le même chiffre à chaque ligne

    =>
    Afghanistan85
    France85
    Algerie85
    AfriqueduSud85

    etc...

    alors que j'aimerais obtenir
    Etats-Unis85
    Turquie0
    Albanie123
    Mozambique12
    etc...

    Donc, j'ai déjà un problème sur la génération du mot de passe. Et ensuite, il faudrait que j'arrive à réaliser une belle requête INSERT (avec la génération du mot de passe).


    Je ne sais pas si c'est suffisamment clair.

    Quelqu'un a-t-il une idée ?

    Par avance, merci de vos réponses,

    Matthieu.

    PS : Si vous avez en tête une solution équivalente qui existe et qui fonctionne, je suis preneur

  2. #2
    Expert confirmé
    Re: Création d'une table de Login avec création d'un mot de
    Citation Envoyé par MatthieuQ
    Quelqu'un a-t-il une idée ?
    Merci de jeter un oeil sur les Conseils à lire avant de poster
    En effet, tu ne nous a pas précisé ton SGBD.

    En ce qui concerne ton souci, j'aurais tendance à passer par une procédure gérant un curseur sur la table Login, pour une attribution du mot de passe ligne à ligne : la fonction RAND serait alors appelée à chaque passage dans la boucle, te générant ainsi des valeurs distinctes. Je ne sais pas si c'est la meilleure solution ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre régulier
    Désolé pour l'oubli de l'intitulé. C'est corrigé.

    Merci pour la réponse. Ton idée est intéressante. Malheureusement je ne sais pas la mettre en oeuvre n'étant guère un spécialiste en scripts SQL.

    Je partais vers une appli sous VB pour justement faire une boucle d'insertion. Mais c'est surement inventer à nouveau la roue !

###raw>template_hook.ano_emploi###