我正在设置一个工具,该工具将能够从四个变量中创建唯一的标识符,但到目前为止,我的代码正在引入完整的tempdb。即使我只使用1/10的数据im设计此过程。
我通过SSIS将数据收集到SQL Server中。 我有一张包含初始数据的表,其中包括
“ RowID,ID1,ID2,年龄,性别,CaseId,BuildingId,ID1NotValid,文件名”
行ID将始终设置
ID1并不总是设置,但对于新的uniqueId来说很重要,ID2一样 年龄和性别是确保ID2正确的两个帮助变量,但并非总是将其设置。
如果ID2的年龄和/或性别不同,则最有可能是其他人,除非ID1也被赋予且两种情况都相同。
CaseId和BuildingId并不总是设置并连接到FileName,重要的是这些ID随新的uniqueId一起可用。
ID1NotValid只是一些额外的信息,需要在结尾添加新的uniqueId
问题是ID1和ID2相互连接但并非总是同时设置,可能是ID1已设置,而其余未设置。
我试图通过所有这些情况创建一个具有所有ID类型的表的方法。我在其中添加这些的表通过在此之后添加数据来生成唯一标识符,我只是将所有其他数据(例如CaseID,BuildingID)添加回ID1和ID2
INSERT INTO temptbl_getAllid1Andid2
SELECT RTRIM(LTRIM(id1)), RTRIM(LTRIM(id2)), RTRIM(LTRIM(age)), RTRIM(LTRIM(gender))
FROM dbo.tbl_ini_dat
WHERE id1 <> '' AND id2 <> ''
GROUP BY id1, id2, age, gender
INSERT INTO temptbl_getAllid1Andid2
SELECT RTRIM(LTRIM(id1)), RTRIM(LTRIM(id2)), RTRIM(LTRIM(age)), RTRIM(LTRIM(gender))
FROM dbo.tbl_ini_dat
WHERE id1 <> '' AND id2 = ''
AND id1 NOT IN (SELECT DISTINCT id1 FROM temptbl_getAllid1Andid2)
GROUP BY id1, id2, age, gender
INSERT INTO temptbl_getAllid1Andid2
SELECT RTRIM(LTRIM(id1)), RTRIM(LTRIM(id2)), RTRIM(LTRIM(age)), RTRIM(LTRIM(gender))
FROM dbo.tbl_ini_dat
WHERE id1 = '' AND id2 <> ''
AND id2 NOT IN (SELECT DISTINCT id2 FROM temptbl_getAllid1Andid2)
GROUP BY id1, id2, age, gender