首页 > 解决方案 > TFS 2012 讨论用户

问题描述

我可以在 TFS 数据库中的哪里找到输入讨论项目的用户,如此处所示?我发现讨论项在 WorkItemLongTexts 表上的位置,并且我看到用户数据在 Constants 表上的位置,但我没有看到将两者联系在一起的表或视图。

TFS 屏幕抓取

标签: tfstfs-2012

解决方案


我终于弄清楚了讨论/评论用户和时间戳是如何存储在 TFS 数据库中的。这是一个愚蠢的设计。您必须联合 WorkItemsWere 和 WorkItemsAre 表并加入 WorkItemLongTexts。我探索了“Change Order”和“Rev”列来进行 JOIN,但没有任何意义。相反,您必须在 DATETIMES 之前加入。我通常不会提倡像这样加入,但这是我让它发挥作用的唯一方法。最后,我能够提取所有数据,完成转换并最终将 TFS 放入床中。

如果您有兴趣,请在此处查询...

WITH WorkItems AS (
    SELECT ID, PersonId, [Changed Date]
    FROM WorkItemsAre
    UNION
    SELECT ID, PersonId, [Changed Date] 
    FROM WorkItemsWere 
), Discussion AS (
    SELECT *
    FROM WorkItemLongTexts
    WHERE FldID = 54
)
SELECT w.ID, PersonId, NamePart, d.AddedDate, Words
FROM Discussion d
INNER JOIN WorkItems w
ON d.ID = w.ID
AND d.AddedDate = w.[Changed Date]
LEFT OUTER JOIN Constants c
ON w.PersonId = c.ConstID
ORDER BY w.ID, d.AddedDate

推荐阅读