Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Używanie pętli while do aktualizacji SQL Server

To nie zadziała, ponieważ nie możesz umieścić nazwy kolumny w cudzysłowie. Zasadniczo SQL porównuje dwa ciągi, które zawsze będą różne, co oznacza, że ​​nigdy nie wykonasz aktualizacji.

Jeśli musisz to zrobić w ten sposób, musiałbyś mieć coś takiego...

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

Generalnie jednak odradzałbym tę praktykę. Nie jestem fanem dynamicznego SQL generowanego wewnątrz innej instrukcji SQL dla jakiegokolwiek kodu produkcyjnego. Bardzo przydatne do wykonywania jednorazowych zadań programistycznych, ale nie lubię tego w przypadku kodu, który mógłby zostać wykonany przez użytkownika.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP IIS7 MSSQL Wywołanie niezdefiniowanej funkcji sqlsrv_connect

  2. Jak utworzyć funkcję rozpoczęcia i zakończenia czasu letniego w SQL Server

  3. Oblicz sumę daty i godziny w GG:MM:SS w sql

  4. Czy integracja SQL Server CLR obsługuje pliki konfiguracyjne?

  5. Przyznaj uprawnienia na poziomie tabeli w SQL Server