Sql server 2008 SQL-更新表

Sql server 2008 SQL-更新表,sql-server-2008,Sql Server 2008,我需要更新一个表,这是到目前为止我的sql代码,但我收到以下错误消息: 第30行:“')附近的语法不正确。 更新dbo.Part 设置SupplierShortName=NationalSupplier.ShortName, SupplierLongName=NationalSupplier.LongName 挑选* 来自dbo.Part 加入dbo.NationalSupplier 零件上的供应商编号=国家供应商编号 和(ISNULL(Part.SupplierShortName.))ISNU

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

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

更新dbo.Part
设置SupplierShortName=NationalSupplier.ShortName,
SupplierLongName=NationalSupplier.LongName
挑选*
来自dbo.Part
加入dbo.NationalSupplier
零件上的供应商编号=国家供应商编号
和(ISNULL(Part.SupplierShortName.))ISNULL(NationalSupplier.ShortName.))
或ISNULL(Part.SupplierLongName“”)或ISNULL(NationalSupplier.LongName“”)
左外连接dbo.NationalPart
ON Part.NationalPartID=NationalPart.NationalPartID
其中Part.DWCreationEntityID=1
并且NationalPart.NationalPartID为NULL
提前感谢您提供的宝贵提示!
试试这个:

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
更新dbo.Part
设置SupplierShortName=NationalSupplier.ShortName,
SupplierLongName=NationalSupplier.LongName
来自dbo.Part
加入dbo.NationalSupplier
零件上的供应商编号=国家供应商编号
和(ISNULL(Part.SupplierShortName.))ISNULL(NationalSupplier.ShortName.))
或ISNULL(Part.SupplierLongName“”)或ISNULL(NationalSupplier.LongName“”)
左外连接dbo.NationalPart
ON Part.NationalPartID=NationalPart.NationalPartID
其中Part.DWCreationEntityID=1
并且NationalPart.NationalPartID为NULL
您应该为表名添加别名,以使内容简洁

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