来自TFS_Warehouse数据库的工作项的分层列表

时间:2013-04-30 12:35:17

标签: sql tsql tfs tfs2008

我正在尝试从TFS_Warehouse检索所有“Product Backlog”工作项的分层列表。今天是我在TFS上工作的第一天,所以我不太了解架构/或要查找的表。

我找到了两个表DimWorkItem和FactWorkItemLinkHistory。我尝试从这些中提取一些信息,但没有运气。

我要做的是生成一个Release Details列表,它将显示状态为New,Approved的工作项...我需要编写一个TSQL语句来获取这些数据。

感谢任何帮助。

谢谢, 维沙尔

1 个答案:

答案 0 :(得分:3)

我假设您已经想到了这一点,但是如果其他人经过,您可以将GetWorkItemsTree UDF与CROSS APPLY运算符一起使用,并将根节点System_Id传递给它以及用于遍历树的关系类型,例如:

SELECT 
   ...
FROM
    DimWorkItem wi
CROSS APPLY
    GetWorkItemsTree(@TeamProjectCollectionGuid, wi.System_Id, N'Child', DEFAULT) wit
WHERE
    wi.System_Id = @RootId
    AND wi.System_RevisedDate = CONVERT(datetime, '9999', 126) -- latest revision

但是,这个UDF只会遍历单个关系类型,我记得遍历深度有限制。如果你需要更灵活的东西,你可能必须自己写;我使用包含[FactWorkItemLinkHistory]表上的递归CTE的UDF,这也提供了遍历多种关系类型。