Update deyiminde tablo diğer adını kullanmanın iyi bir yolu mu?


95

SQL Server kullanıyorum ve aynı tablodan satırları güncellemeye çalışıyorum. Okunabilirlik için bir tablo diğer adı kullanmak istiyorum.

Ben şu anda bunu yapıyorum:

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'

Daha kolay / daha iyi yollar var mı?


1
Okunabilirlik için isteğe bağlı "AS" anahtar kelimesini (dbo.Rates AS ra'DAN) kullanmayı seviyorum.
Robert S.

4
Doğru ANSI JOIN sözdizimini kullanırdım FROM dbo.Rates ra INNER JOIN dbo.Rates rb ON ra.ResourceID = rb.ResourceID- bu standarttır, daha nettir ve WHERE
ibarenizdeki

1
marc_s iyi bir noktaya sahip; Daha net JOIN sözdizimi kullanmak için SQL'i düzenledim
realcals

Yanıtlar:


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

Bu, performansı artırmaya yardımcı olabilir.


3
Neden?? Kozmetik dışında hiçbir şeyi değiştirmedin!
underscore_d

1

T-SQL'de (Microsoft SQL) Sorgu Güncelleme'deki tablo diğer adı. MS SQL Server 2008 R2 için gayet iyi çalışıyor

UPDATE A_GeneralLedger  set ScheduleId=g.ScheduleId
from A_GeneralLedger l inner join A_AcGroup g on g.ACGroupID=l.AccountGroupID
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.