अपडेट स्टेटमेंट में टेबल उर्फ ​​का उपयोग करने का अच्छा तरीका है?


95

मैं SQL सर्वर का उपयोग कर रहा हूं, और उसी तालिका के भीतर से पंक्तियों को अपडेट करने की कोशिश कर रहा हूं। मैं पठनीयता के लिए एक तालिका उपनाम का उपयोग करना चाहता हूं।

इस समय मैं इसे कर रहा हूं:

UPDATE ra
SET ra.ItemValue = rb.ItemValue
FROM dbo.Rates ra
INNER JOIN  dbo.Rates rb
ON ra.ResourceID = rb.ResourceID
WHERE ra.PriceSched = 't8'
AND rb.PriceSched = 't9'

क्या आसान / बेहतर तरीके हैं?


1
मैं पठनीयता के लिए वैकल्पिक कीवर्ड "AS" (FROM dbo.Rates AS ra) का उपयोग करना पसंद करता हूं।
राबर्ट एस।

3
मैं उचित एएनएसआई जॉय सिंटैक्स का उपयोग करता हूं FROM dbo.Rates ra INNER JOIN dbo.Rates rb ON ra.ResourceID = rb.ResourceID- यह मानक है, यह स्पष्ट है, और यह आपके WHERE क्लॉज में
जोइन की

1
marc_s का एक अच्छा बिंदु है; मैंने SQL को क्लियर JOIN सिंटैक्स
realcals

जवाबों:


46
UPDATE ra 
   SET ra.ItemValue = rb.ItemValue
  FROM dbo.Rates ra
 INNER JOIN dbo.Rates rb
         ON ra.ResourceID = rb.ResourceID
WHERE ra.PriceSched = 't8'
  AND rb.PriceSched = 't9';

इससे प्रदर्शन को बेहतर बनाने में मदद मिल सकती है।


2
क्यों?? आपने सौंदर्य प्रसाधन को छोड़कर कुछ भी नहीं बदला!
अंडरस्कोर_ड

1

T-SQL (Microsoft SQL) में अद्यतन क्वेरी में तालिका उपनाम। MS SQL Server 2008 R2 के लिए यह ठीक काम है

UPDATE A_GeneralLedger  set ScheduleId=g.ScheduleId
from A_GeneralLedger l inner join A_AcGroup g on g.ACGroupID=l.AccountGroupID
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.