Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Utilisation de la boucle While pour la mise à jour de SQL Server

Cela ne fonctionnera pas réellement, car vous ne pouvez pas mettre le nom de la colonne entre guillemets. Ce que vous faites essentiellement, c'est que SQL compare deux chaînes qui seront toujours différentes, ce qui signifie que vous n'effectuerez jamais de mise à jour.

Si vous devez le faire de cette façon, vous devez avoir quelque chose comme...

DECLARE @a INT 
DECLARE @b VARCHAR 
SET @a = 1

WHILE @a < 30
BEGIN
set @b = @a  
exec sp_executesql N'UPDATE source set h = h + 'x_'[email protected] + N'
           where y_'[email protected] + N' = ''Sold'''   

SET @a = @a + 1
END

En général, cependant, je déconseille cette pratique. Je ne suis pas fan du SQL dynamique généré dans une autre instruction SQL pour tout type de code de production. Très utile pour effectuer des tâches de développement ponctuelles, mais je n'aime pas ça pour du code qui pourrait être exécuté par un utilisateur.