UDDATE 表2 SET 类别=A.类别 FROM 表1 A JOIN 表2 B ON A.存货编码=B.存货编码 AND A.存货名称=B.存货名称
declare @s nvarchar(max) set @s=N'#T2 存货编码 存货名称 类别 0001 A a 0001 A NULL 0002 B NULL ' exec SP_Script @s--测试数据 if not object_id(N'Tempdb..#T1') is null drop table #T1 Go Create table #T1([存货编码] nvarchar(24),[存货名称] nvarchar(21),[类别] nvarchar(22)) Insert #T1 select N'0001',N'A',N'XL' union all select N'0002',N'B',N'ML' union all select N'0003',N'C',N'LL' GO if not object_id(N'Tempdb..#T2') is null drop table #T2 Go Create table #T2([存货编码] nvarchar(24),[存货名称] nvarchar(21),[类别] nvarchar(21)) Insert #T2 select N'0001',N'A',null union all select N'0001',N'A',null union all select N'0002',N'B',null Go --测试数据结束 UPDATE #T2 SET 类别 = #T1.类别 FROM #T1 WHERE #T1.存货编码 = #T2.存货编码 AND #T1.存货名称 = #T2.存货名称;SELECT * FROM #T2
SET 类别=A.类别
FROM 表1 A JOIN
表2 B ON A.存货编码=B.存货编码 AND A.存货名称=B.存货名称
set @s=N'#T2
存货编码 存货名称 类别
0001 A a
0001 A NULL
0002 B NULL
'
exec SP_Script @s--测试数据
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([存货编码] nvarchar(24),[存货名称] nvarchar(21),[类别] nvarchar(22))
Insert #T1
select N'0001',N'A',N'XL' union all
select N'0002',N'B',N'ML' union all
select N'0003',N'C',N'LL'
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([存货编码] nvarchar(24),[存货名称] nvarchar(21),[类别] nvarchar(21))
Insert #T2
select N'0001',N'A',null union all
select N'0001',N'A',null union all
select N'0002',N'B',null
Go
--测试数据结束
UPDATE #T2
SET 类别 = #T1.类别
FROM #T1
WHERE #T1.存货编码 = #T2.存货编码
AND #T1.存货名称 = #T2.存货名称;SELECT * FROM #T2
SET 类别=A.类别
FROM 表1 A,表2 B WHERE A.存货编码=B.存货编码 AND A.存货名称=B.存货名称