SQL Server : mise à jour de plusieurs rangées de façon dynamique
Je veux mettre à jour plusieurs lignes dans ma base de données, les valeurs peuvent être différentes. Imaginez ce tableau:
Username FirstName LastName
-------------------------------
user1 John Doe
user2 Jane Doe
user3 bill gates
Si je veux mettre à jour la table de sorte qu'il ressemble à ceci:
Username FirstName LastName
-------------------------------
user1 John Deer
user2 Jane Farmer
user3 Gill Bates
Est-il préférable d'utiliser un UPDATE
déclaration pour chaque utilisateur? Ou est-il possible de le faire avec une seule requête?
Aussi est-il possible de le mettre dans une procédure stockée et de fournir un ensemble de valeurs?
Deuxième question est-il préférable de vérifier si les valeurs sont modifiées avant de faire une mise à jour? Ou tout simplement mettre à jour tout le monde, même si la valeur est la même?
Je suis actuellement à l'aide de SQL Server 2005 et C# pour l'application si cela est pertinent.
OriginalL'auteur Lasse Vabe Rolstad | 2012-11-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer ce
Ou si vous voulez mettre à jour seulement changé les champs
Pour l'application client C# je pense que la façon habituelle est de créer de la procédure
et ensuite appeler à partir de votre application pour chaque utilisateur
Im juste va l'exécuter de cette façon, il semble plus simple pour l'instant. Plus tard, je peux faire quelques profilage si le rendement est mauvais.
eh bien, il dépend de la façon dont beaucoup d'utilisateurs que vous souhaitez être mise à jour à la fois. Si vous avez plus d'une centaine de lignes à mettre à jour à partir d'un client (ce qui semble un peu étrange pour moi), vous pouvez envisager d'utiliser xml pour mettre à jour toutes les lignes en une seule instruction
OriginalL'auteur Roman Pekar
J'aimerais créer des requêtes pour les utilisateurs individuels:
etc.
Vous ont des noms d'utilisateur, donc en théorie, il ne devrait pas être nécessaire de mettre à jour les valeurs qui n'ont pas changé. Cependant, vous pouvez toujours construire comme un supplément de sécurité.
Si c'est la performance dont vous avez besoin, puis de vérifier à l'avance si la colonne eneds à être mis à jour ou non ce serait une bonne idée. J'aimerais faire quelque chose dynamiquement puis, lorsque vous écrivez un générique instruction de mise à jour, et d'effectuer la vérification de la colonne. Si elle doit être mise à jour, ajout de la colonne de l'état, sinon de l'ignorer.
OriginalL'auteur SchmitzIT