1

我在 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

现在我想用 TBL_CustomerMaster 的 CustId 映射 CustUnqId,即将 TBL_CustomerMaster 中的 CustId 替换为 TBL_Customer 中的对应 CustUnqId

请提出解决方案。

4

1 回答 1

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
于 2012-11-29T11:56:46.647 回答