আপডেট স্টেটমেন্টে টেবিল ওরফে ব্যবহার করার ভাল উপায়?


95

আমি এসকিউএল সার্ভার ব্যবহার করছি এবং একই টেবিলের মধ্যে থেকে সারিগুলি আপডেট করার চেষ্টা করছি। আমি পঠনযোগ্যতার জন্য একটি টেবিল ওরফে ব্যবহার করতে চাই।

এই মুহুর্তে এটি আমি এভাবেই করছি:

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'

সহজ / আরও ভাল উপায় আছে?


4
আমি পঠনযোগ্যতার জন্য ASচ্ছিক কীওয়ার্ড "এএস" (FROM dbo.Rates AS ra) ব্যবহার করতে চাই।
রবার্ট এস

4
আমি সঠিক ANSI JOIN সিনট্যাক্স ব্যবহার করতে চাই FROM dbo.Rates ra INNER JOIN dbo.Rates rb ON ra.ResourceID = rb.ResourceID- এটা এর স্ট্যান্ডার্ড, এটা পরিষ্কার, এবং এটি আপনার WHERE বাক্যাংশ মধ্যে শর্ত (গুলি) JOIN বিস্মরণ দ্বারা কোন অবাঞ্ছিত কার্টিজিয়ান পণ্য এড়াতে ....
marc_s

4
marc_s একটি ভাল পয়েন্ট আছে; আমি
স্পষ্টত যোগ

উত্তর:


44
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';

এটি কার্যকারিতা উন্নত করতে সহায়তা করতে পারে।


4
কেন ?? আপনি প্রসাধনী ছাড়া কিছুই পরিবর্তন করেন নি!
আন্ডারস্কোর_ডি

1

টি-এসকিউএল (মাইক্রোসফ্ট এসকিউএল) আপডেট আপডেটে সারণী ওরফে alias এমএস এসকিউএল সার্ভার ২০০৮ আর 2 এর জন্য এটি ঠিক কাজ করছে

UPDATE A_GeneralLedger  set ScheduleId=g.ScheduleId
from A_GeneralLedger l inner join A_AcGroup g on g.ACGroupID=l.AccountGroupID
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.