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.

Bien qu'il soit techniquement possible de faire cela en une seule requête, vous auriez un fou clause where ou de l'AFFAIRE de logique à résoudre. En vrac les Mises à jour sont meilleures quand vous avez 1 critères à appliquer pour plusieurs valeurs... Par exemple, il serait bon d'avoir une instruction de mise à jour sur plusieurs lignes si vous vouliez mettre à jour tous les noms et prénoms Bon boîtier ou si vous avez besoin de changer certains noms de famille à l'égalité de la valeur d'une autre colonne.

OriginalL'auteur Lasse Vabe Rolstad | 2012-11-08