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 :
En cherchant à générer le mot de passe, j'arrive à
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 )
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
Partager