Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

किसी अन्य तालिका से Sql Server CE तालिका अद्यतन कैसे करें?

आपका दूसरा प्रयास काम नहीं करता क्योंकि, पुस्तकों की ऑन-लाइन प्रविष्टि के आधार पर अद्यतन के लिए , SQL CE FROM . की अनुमति नहीं देता है अपडेट स्टेटमेंट में क्लॉज।

मेरे पास इसका परीक्षण करने के लिए SQL कॉम्पैक्ट संस्करण नहीं है, लेकिन यह काम कर सकता है:

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% निश्चित नहीं हूं क्योंकि वे टिप्पणियों में उठाए गए प्रश्न से संबंधित हैं (जॉबविसिट से मूल्य का उपयोग करके जॉबमेक में एक मूल्य कैसे अपडेट करें)। बाहरी क्वेरी में 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
                 )

हालाँकि, एक सीमा है। यह क्वेरी विफल हो जाएगी यदि JOBMAKE में प्रत्येक पंक्ति के लिए JOBVISIT में एक से अधिक पंक्ति को फिर से ट्यून किया गया है। यदि यह काम नहीं करता है (या आप आंतरिक क्वेरी को प्रति बाहरी पंक्ति में एक पंक्ति तक सीधे सीमित नहीं कर सकते हैं), तो इसे पूरा करना संभव होगा कर्सर का उपयोग करके पंक्ति-दर-पंक्ति अद्यतन।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसएसआईएस में इंक्रीमेंटल लोड के लिए सबसे अच्छा तरीका

  2. SQL सर्वर टेक्स्ट डेटाटाइप अधिकतम लम्बाई =65,535?

  3. SQL क्वेरी में रेगेक्स (बदलें) निष्पादित करें

  4. SQL सर्वर में sys.objects, sys.system_objects और sys.all_objects के बीच अंतर

  5. एसक्यूएल सर्वर कनेक्शन के माध्यम से किरायेदार आईडी पास करें