INSERT INTO s'il n'existe pas SQL Server
J'ai une base de données structurée de la façon suivante:
utilisateurs
userid (Primary Key)
username
groupe
groupid (PK)
groupName
user_groups
userid (Foreign Key)
groupid (Foreign Key)
La première fois qu'un utilisateur se connecte, je voudrais leur info pour être ajouté à la table des utilisateurs. Donc, essentiellement, la logique, je voudrais avoir si
if (//users table does not contain username)
{
INSERT INTO users VALUES (username);
}
Comment puis-je faire cela intelligemment à l'aide de SQL Server/C# ?
source d'informationauteur Simon Kiely | 2012-03-10
Vous devez vous connecter pour publier un commentaire.
Ou à l'aide de la nouvelle FUSION de la syntaxe:
Fondamentalement, vous pouvez le faire comme ceci:
Mais sérieusement, comment vous allez savoir si l'utilisateur a visité votre site pour la première fois?
Vous devez insérer des enregistrements dans la table utilisateur, lorsque quelqu'un s'inscrire sur votre site, pas de connexion.
Je voudrais tout d'abord créer une procédure stockée sur la db pour l'enregistrement et l'insérer si nécessaire:
Puis une méthode de l'application qui va appeler cette procédure
Le code suivant est une méthode qui retourne 0 si l'utilisateur existe déjà, et renvoie la nouvelle de l'utilisateur ID qui vient d'ajouter :
@gbn répondre à des besoins de SQL server 2008 ou supérieur. J'ai essayé un non-fusion de façon à le faire. Laid peut-être, mais il fonctionne.
Si vous voulez tester les réponses, voici le code SQL de la table -
Ici est un (probablement simpliste) exemple qui répond à vos question. Notez qu'il est toujours préférable d'utiliser des paramètres pour éviter les attaques par injection, en particulier lors de la vérification des utilisateurs.