sql >> Databasteknik >  >> RDS >> Sqlserver

Använda While Loop för SQL Server Update

Detta kommer faktiskt inte att fungera, eftersom du inte kan ha kolumnnamnet inom citattecken. Vad du i huvudsak gör är att låta SQL jämföra två strängar som alltid kommer att vara olika, vilket innebär att du aldrig kommer att utföra en uppdatering.

Om du måste göra på det här sättet, måste du ha något i stil med...

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

I allmänhet skulle jag dock avråda från denna praxis. Jag är inte ett fan av att dynamisk SQL genereras inuti en annan SQL-sats för någon form av produktionskod. Mycket användbart för att utföra enstaka utvecklingsuppgifter, men jag gillar det inte för kod som kan köras av en användare.



  1. Återanvänd resultat från vanliga tabelluttryck för SQL Server

  2. Django DB-transaktioner och dödlägen

  3. MySQL välj och beräkna värde från flera kolumner

  4. Är dessa tecken giltiga för XML?