我可以在TFS 2017中获得哪些表格或视图的工作项标签?

时间:2018-04-11 13:59:03

标签: tfs

我最近要求在我生成的每日SSRS报告中包含Work ItemTag信息。我被引导到下面的SQL查询。问题是我无法使用" WorkItemsAre"找到一个表或一个视图。在名字里。所以我给WorkItemSK,System_Id,ProjectSK和CollectionGUID以及其他许多东西,我如何以及在哪里可以直接查询TFS数据库(我知道查询TFS数据库不建议但是它&#39 ; s符合我的要求)?

SELECT DISTINCT WorkItemsAre.ID, WorkItemsAre.Title, tbl_TagDefinition.Name
--,tbl_PropertyValue.ArtifactId, *
FROM tbl_TagDefinition
LEFT JOIN tbl_PropertyDefinition ON tbl_PropertyDefinition.Name = 
'Microsoft.TeamFoundation.Tagging.TagDefinition.' + CONVERT(NVARCHAR(400), 
tbl_TagDefinition.TagId)
LEFT JOIN tbl_PropertyValue ON tbl_PropertyValue.PropertyId = 
tbl_PropertyDefinition.PropertyId
--LEFT JOIN WorkItemLongTexts ON WorkItemLongTexts.ID = 
tbl_PropertyValue.ArtifactId
left join WorkItemsAre on WorkItemsAre.ID = tbl_PropertyValue.ArtifactId
WHERE 
(
   SELECT SUM(CASE WHEN IntValue = 0 THEN 1 ELSE -1 END) NB 
   FROM tbl_PropertyValue PROP_CNT 
   WHERE PROP_CNT.PropertyId = tbl_PropertyDefinition.PropertyId 
      AND WorkItemsAre.ID = PROP_CNT.ArtifactId
) > 0

enter image description here

1 个答案:

答案 0 :(得分:3)

TFS仓库不包含标签。对于TFS 2018(也许也适用于2017年的tfs),您可以在运营数据库中的表tbl_WorkItemCoreLatest中找到信息(在我的情况下:Tfs_DefaultCollection)

SELECT DISTINCT tbl_WorkItemCoreLatest.Id,tbl_TagDefinition.Name
--,tbl_PropertyValue.ArtifactId, *
FROM tbl_TagDefinition
LEFT JOIN tbl_PropertyDefinition ON tbl_PropertyDefinition.Name = 'Microsoft.TeamFoundation.Tagging.TagDefinition.' + CONVERT(NVARCHAR(400), tbl_TagDefinition.TagId)
LEFT JOIN tbl_PropertyValue ON tbl_PropertyValue.PropertyId = tbl_PropertyDefinition.PropertyId
--LEFT JOIN WorkItemLongTexts ON WorkItemLongTexts.ID = tbl_PropertyValue.ArtifactId
left join tbl_WorkItemCoreLatest on tbl_WorkItemCoreLatest.Id = tbl_PropertyValue.ArtifactId
WHERE 
(
   SELECT SUM(CASE WHEN IntValue = 0 THEN 1 ELSE -1 END) NB 
   FROM tbl_PropertyValue PROP_CNT 
   WHERE PROP_CNT.PropertyId = tbl_PropertyDefinition.PropertyId 
      AND tbl_WorkItemCoreLatest.Id = PROP_CNT.ArtifactId
) > 0