Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да направите актуализация на таблица на Sql Server CE от друга таблица

Вторият ви опит не работи, защото въз основа на записа Книги онлайн за АКТУАЛИЗАЦИЯ , SQL CE не позволява FROM клауза в израз за актуализиране.

Нямам SQL Compact Edition, за да го тествам, но това може да работи:

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
             )

Може да се окаже, че можете да псевдоним JOBMAKE като JM, за да направите заявката малко по-кратка.

РЕДАКТИРАНЕ

Не съм 100% сигурен в ограниченията на SQL CE, тъй като те са свързани с въпроса, повдигнат в коментарите (как да актуализирам стойност в JOBMAKE, използвайки стойност от JOBVISIT). Опитът да се препрати към съдържанието на клаузата EXISTS във външната заявка не се поддържа в нито един SQL диалект, който съм срещал, но има друг метод, който можете да опитате. Това не е тествано, но може да работи, тъй като изглежда, че SQL CE поддържа корелирани подзаявки:

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
                 )

Има обаче ограничение. Тази заявка ще бъде неуспешна, ако повече от един ред в JOBVISIT бъде пренастроен за всеки ред в JOBMAKE. Ако това не работи (или не можете директно да ограничите вътрешната заявка до един ред на външен ред), би било възможно да се извърши актуализация ред по ред с помощта на курсор.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да ускорите груповото вмъкване в MS SQL Server с помощта на pyodbc

  2. Поправете „Грешка при аритметично препълване при преобразуване на IDENTITY в тип данни…“ в SQL Server

  3. Как да създадете и попълните таблица в една стъпка като част от операция за импортиране на CSV?

  4. Персонализирайте алармите в облака на прожекторите

  5. Преместване на точка по път в SQL Server 2008