sql >> Base de Datos >  >> RDS >> Sqlserver

Uso de While Loop para la actualización de SQL Server

En realidad, esto no funcionará, ya que no puede tener el nombre de la columna entre comillas. Básicamente, lo que está haciendo es hacer que SQL compare dos cadenas que siempre serán diferentes, lo que significa que nunca realizará una actualización.

Si debe hacerlo de esta manera, debe tener algo como...

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 general, sin embargo, desaconsejaría esta práctica. No soy un fanático del SQL dinámico que se genera dentro de otra declaración SQL para ningún tipo de código de producción. Muy útil para realizar tareas de desarrollo únicas, pero no me gusta para el código que un usuario podría ejecutar.