J'utilise SQL Server et j'essaie de mettre à jour les lignes à partir de la même table. Je souhaite utiliser un alias de table pour plus de lisibilité.
Voici comment je le fais en ce moment:
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'
Existe-t-il des moyens plus faciles / meilleurs?
sql-server
realcals
la source
la source
FROM dbo.Rates ra INNER JOIN dbo.Rates rb ON ra.ResourceID = rb.ResourceID
- c'est la norme, c'est plus clair et cela évite tout produit cartésien indésirable en oubliant la ou les conditions JOIN dans votre clause WHERE ....Réponses:
Cela peut aider à améliorer les performances.
la source
Alias de table dans la requête de mise à jour dans T-SQL (Microsoft SQL). pour MS SQL Server 2008 R2, cela fonctionne très bien
la source