我在sql server 2008中有两个表
TBL_CustomerMaster
[FilingId] [numeric] (18, 0) NOT NULL,
[CustId] [nvarchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
TBL_Customer
[FilingId] [numeric] (18, 0) NOT NULL,
[CustUnqId] [numeric] (18, 0) NOT NULL,
[CustId] [nvarchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
我使用批量插入将数据加载到每个FilingId的两个表中,两个表的CustId是相同的。我为TBL_Customer生成了唯一的CustUnqId
现在我想将CustUnqId映射到TBL_CustomerMaster的CustId 一世。即将TBL_CustomerMaster中的CustId替换为相应的CustUnqId表单TBL_Customer
请提出解决方案。
答案 0 :(得分:2)
您可以尝试这一点,但将其包含在事务中并在将任何内容放入生产环境之前进行测试:
SELECT a.CustId,
b.CustUnqId
INTO #temp
FROM TBL_CustomerMaster a
JOIN TBL_Customer b ON
a.CustId = b.CustId
UPDATE TBL_CustomerMaster
SET CustId = t.CustUnqId
FROM TBL_CustomerMaster a
JOIN #temp t ON
t.CustId = a.CustId