日期:2014-05-17  浏览次数:20444 次

100简单问题求救啊!!12点前用弄出来,在线等
我要做的做表的一个列的UPDATE,如图

语句是这样的
UPDATE dbo.DP_ProductCoding SET Code = a.[新编码]
FROM [DP6_Macro].[dbo].['替换--KA编码$'] a,dbo.DP_ProductCoding b
WHERE a.[旧产品编码]=b.Code

但问题是这个表是不能插入重复的Code值的,这该咋办啊?求大神相助
SQL

------解决方案--------------------

SELECT  'alter table DP_ProductCoding drop ' + name
FROM    sys.objects
WHERE   parent_object_id = OBJECT_ID('DP_ProductCoding')
        AND type = 'UQ'



执行的结果,copy出来再执行一遍即可。 
------解决方案--------------------
引用:
现在想改下需求,只需要把一对一的替换,这个代码怎么写啊?


UPDATE b SET b.Code = a.[新编码]
FROM (SELECT [旧产品编码],MAX([新编码]) [新编码] from [DP6_Macro].[dbo].['替换--KA编码$'] GROUP BY [旧产品编码])a,dbo.DP_ProductCoding b
WHERE a.[旧产品编码]=b.Code