Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menggunakan While Loop untuk Pembaruan SQL Server

Ini tidak akan benar-benar berfungsi, karena Anda tidak dapat memasukkan nama kolom dalam tanda kutip. Yang pada dasarnya Anda lakukan adalah membuat SQL membandingkan dua string yang akan selalu berbeda, artinya Anda tidak akan pernah melakukan pembaruan.

Jika Anda harus melakukannya dengan cara ini, Anda harus memiliki sesuatu seperti...

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

Namun, secara umum, saya tidak menganjurkan praktik ini. Saya bukan penggemar SQL dinamis yang dihasilkan di dalam pernyataan SQL lain untuk segala jenis kode produksi. Sangat berguna untuk melakukan tugas pengembangan satu kali, tetapi saya tidak menyukainya untuk kode yang dapat dieksekusi oleh pengguna.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak ada kebuntuan SQL berdasarkan desain - ada pola pengkodean?

  2. Berbicara Tentang Kemacetan Kinerja SQL Server

  3. BCP tidak mengembalikan kesalahan, tetapi juga tidak menyalin baris apa pun

  4. Menggunakan tupel dalam klausa SQL IN

  5. Apakah mungkin untuk melewatkan parameter untuk memicu di database SQL Server?