我正在尝试从TFS_Warehouse检索所有“Product Backlog”工作项的分层列表。今天是我在TFS上工作的第一天,所以我不太了解架构/或要查找的表。
我找到了两个表DimWorkItem和FactWorkItemLinkHistory。我尝试从这些中提取一些信息,但没有运气。
我要做的是生成一个Release Details列表,它将显示状态为New,Approved的工作项...我需要编写一个TSQL语句来获取这些数据。
感谢任何帮助。
谢谢, 维沙尔
答案 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,这也提供了遍历多种关系类型。