Sql server 2008 SQL-更新表
我需要更新一个表,这是到目前为止我的sql代码,但我收到以下错误消息: 第30行:“')附近的语法不正确。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
更新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