हारून द्वारा दिया गया उत्तर सही है:
UPDATE a
SET a.CalculatedColumn = b.[Calculated Column]
FROM Table1 AS a
INNER JOIN Table2 AS b
ON a.CommonField = b.[Common Field]
WHERE a.BatchNo = '110';
बस जोड़ना चाहते हैं कि SQL सर्वर में यह समस्या क्यों होती है जब हम उस तालिका को अद्यतन करते समय किसी अन्य तालिका का उपयोग करने का प्रयास करते हैं, नीचे उल्लेख वाक्यविन्यास हमेशा त्रुटि देगा:
update tableName t
set t.name = 'books new'
where t.id = 1
यदि आप किसी एकल तालिका को अपडेट कर रहे हैं या जुड़ने के दौरान अपडेट कर रहे हैं तो मामला कोई भी हो सकता है।
यद्यपि उपरोक्त क्वेरी PL / SQL में ठीक काम करेगी लेकिन SQL सर्वर में नहीं।
SQL सर्वर में तालिका उपनाम का उपयोग करते हुए तालिका को अपडेट करने का सही तरीका है:
update t
set t.name = 'books new'
from tableName t
where t.id = 1
आशा है कि यह सभी को मदद करेगा कि यहाँ त्रुटि क्यों आई।
UPDATE table1 a SET a.[field] = b.[field]
- एक उपनाम हटाने से काम होता है, इसलिएUPDATE table1 a SET [field] = b.[field]