【发布时间】:2019-11-12 23:57:08
【问题描述】:
我有一个使用源表填充目标表的工作流程。
我试图在下面的代码中模拟这个工作流程。
-- creating/populating source table
CREATE TABLE #SourceTable
(
CampaignName VARCHAR(50),
CustomerNumber INT
)
INSERT INTO #SourceTable
VALUES ('Campaign1', 1111), ('Campaign1', 2222), ('Campaign1', 3333),
('Campaign2', 4444), ('Campaign2', 2222), ('Campaign2', 1111)
-- create/populate destination table
CREATE TABLE #DestinationTable
(
CampaignID INT,
CampaignName VARCHAR(50),
CustomerNumber INT
)
-- Simulating populating the #DestinationTable
INSERT INTO #DestinationTable (CampaignName, CustomerNumber)
SELECT CampaignName, CustomerNumber
FROM #SourceTable
源表将以某种方式创建,但随后它用于以与我的示例代码相同的方式填充目标表。
目标表在 CustomerNumber 级别。我想自动填充一个 ID 字段(无需用户对其进行编码),它将在 CampaignName 级别提供一个新数字。
例如,我希望#DestinationTable 的输出为:
CampaignID CampaignName CustomerNumber
------------------------------------------
1 Campaign1 1111
1 Campaign1 2222
1 Campaign1 3333
2 Campaign2 4444
2 Campaign2 2222
2 Campaign2 1111
但是我需要在插入新行时自动填充 CampaignID 列,例如 IDENTITY 列,但我不需要给每一行一个数字,而是给每个 CampaignName 一个新的数字。
这可能吗?
谢谢
【问题讨论】:
标签: sql sql-server uniqueidentifier