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

Bagaimana melakukan pembaruan tabel Sql Server CE dari tabel lain

Upaya kedua Anda tidak berhasil karena, berdasarkan entri Buku On-Line untuk PEMBARUAN , SQL CE tidak mengizinkan FROM klausa dalam pernyataan pembaruan.

Saya tidak memiliki SQL Compact Edition untuk mengujinya, tetapi ini mungkin berhasil:

UPDATE JOBMAKE
SET WIP_STATUS = '10sched1'
WHERE EXISTS (SELECT 1
              FROM JOBVISIT AS JV
              WHERE JV.JBT_TYPE   = JOBMAKE.JBT_TYPE
              AND   JV.JOB_NUMBER = JOBMAKE.JOB_NUMBER
              AND   JV.JVST_ID    = @jvst_id
             )

Mungkin Anda bisa alias JOBMAKE sebagai JM untuk membuat kueri sedikit lebih pendek.

EDIT

Saya tidak 100% yakin dengan batasan SQL CE karena terkait dengan pertanyaan yang diajukan di komentar (bagaimana cara memperbarui nilai dalam JOBMAKE menggunakan nilai dari JOBVISIT). Mencoba merujuk ke konten klausa EXISTS di kueri luar tidak didukung dalam dialek SQL apa pun yang saya temui, tetapi ada metode lain yang dapat Anda coba. Ini belum diuji tetapi dapat berfungsi, karena sepertinya SQL CE mendukung subkueri yang berkorelasi:

UPDATE JOBMAKE 
SET WIP_STATUS = (SELECT JV.RES_CODE 
                  FROM JOBVISIT AS JV 
                  WHERE JV.JBT_TYPE = JOBMAKE.JBT_TYPE 
                  AND   JV.JOB_NUMBER = JOBMAKE.JOB_NUMBER 
                  AND   JV.JVST_ID = 20
                 )

Ada batasan, namun. Kueri ini akan gagal jika lebih dari satu baris di JOBVISIT disetel ulang untuk setiap baris di JOBMAKE. Jika ini tidak berhasil (atau Anda tidak dapat langsung membatasi kueri dalam ke satu baris per baris luar), akan mungkin untuk melakukan pembaruan baris demi baris menggunakan kursor.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Salin Data dari Salesforce ke SQL Server dengan Spectral Core

  2. Apakah kueri ANSI JOIN vs. non-ANSI JOIN akan bekerja secara berbeda?

  3. SQL Server - Apa yang terjadi ketika baris dalam tabel diperbarui?

  4. Bagaimana cara membuat tabel berdasarkan tabel lain?

  5. Pulihkan Database di SQL Server 2017