SQL - 更新表

时间:2014-12-16 21:13:44

标签: sql-server-2008

我需要更新一个表,这是我的sql代码到目前为止,但是我收到以下错误消息:

第30行:')'附近的语法不正确。

UPDATE dbo.Part
SET SupplierShortName = NationalSupplier.ShortName,
SupplierLongName = NationalSupplier.LongName
SELECT    *
  FROM    dbo.Part
 JOIN    dbo.NationalSupplier
    ON    Part.SupplierNumber    =    NationalSupplier.Number
   AND (ISNULL(Part.SupplierShortName,'') <> ISNULL(NationalSupplier.ShortName,'') 
    OR ISNULL(Part.SupplierLongName,'') <> ISNULL(NationalSupplier.LongName,''))
  LEFT OUTER JOIN dbo.NationalPart
    ON Part.NationalPartID = NationalPart.NationalPartID
WHERE Part.DWCreationEntityID = 1
   AND NationalPart.NationalPartID is NULL


Thanks in advance for any valuable tips !

1 个答案:

答案 0 :(得分:0)

试试这个:

UPDATE dbo.Part
SET SupplierShortName = NationalSupplier.ShortName,
SupplierLongName = NationalSupplier.LongName
  FROM    dbo.Part
 JOIN    dbo.NationalSupplier
    ON    Part.SupplierNumber    =    NationalSupplier.Number
   AND (ISNULL(Part.SupplierShortName,'') <> ISNULL(NationalSupplier.ShortName,'') 
    OR ISNULL(Part.SupplierLongName,'') <> ISNULL(NationalSupplier.LongName,''))
  LEFT OUTER JOIN dbo.NationalPart
    ON Part.NationalPartID = NationalPart.NationalPartID
WHERE Part.DWCreationEntityID = 1
   AND NationalPart.NationalPartID is NULL

您应该对表名进行别名以使事情更简洁。