我正在尝试从 TFS_Warehouse 检索所有“产品积压”工作项的分层列表。今天是我在 TFS 上工作的第一天,所以我并不真正了解架构/或要查找的表。
我找到了两个表 DimWorkItem 和 FactWorkItemLinkHistory。我尝试从这些中提取一些信息,但没有运气。
我要做的是生成一个发布详细信息列表,该列表将显示具有新、已批准等状态的工作项......我需要编写一个 TSQL 语句来获取这些数据。
任何帮助表示赞赏。
谢谢, 维沙尔
我假设您已经弄清楚了这一点,但是如果其他人经过,您可以将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 只会遍历一个关系类型,我记得遍历深度是有限制的。如果您需要更灵活的东西,您可能必须自己编写;我这样做是在表上使用包含递归 CTE 的 UDF [FactWorkItemLinkHistory]
,它还提供了多种关系类型的遍历。