TFS2015 - 列出与其所有者的所有用户和共享查询

时间:2018-05-30 08:06:18

标签: sql sql-server tfs tfs2015

我试图从TFS2015数据库中列出所有用户拥有和共享的查询及其所有者,但我找不到用户拥有的查询的所有者,它始终显示为null。我在SO returns shared queries上找到了类似的主题,但在将其应用于用户拥有的查询时,它不会返回任何所有者。 我浏览了QueryItems表中的记录,找不到任何指向查询所有者的字段。 这是我到目前为止使用的SQL查询:

   SELECT qi.Name as 'Query Name'
         ,c.DisplayPart as 'Query Owner',
          [fPublic],
          [fFolder],
          [fDeleted]
     FROM [Tfs_Development].[dbo].[QueryItems] qi
LEFT JOIN [Tfs_Development].[dbo].[Constants] c ON c.TeamFoundationId=qi.OwnerIdentifier
    WHERE fPublic=0 AND fFolder=1 And fDeleted=0

如果有办法用REST API做到这一点,那也会有所帮助。

1 个答案:

答案 0 :(得分:1)

对于共享查询,密钥应为WHERE fPublic=1 AND fFolder=0 And fDeleted=0

所以,只需尝试下面的SQL查询(它可以在我这边工作):

SELECT   qi.Name as 'Query Name',
         c.DisplayPart as 'Query Owner',
          [fPublic],
          [fFolder],
          [fDeleted]
     FROM [TFS_DefaultCollection].[dbo].[QueryItems] qi
     LEFT JOIN [TFS_DefaultCollection].[dbo].[Constants] c ON c.TeamFoundationId=qi.OwnerIdentifier
     WHERE fPublic=1 AND fFolder=0 And fDeleted=0

当然您也可以使用REST API来检索信息:

GET http://server:8080/tfs/DefaultCollection/{ProjectName}/_apis/wit/queries/Shared Queries?api-version=1.0&$depth=2

<强>更新

键的说明:

fPublic=1用于共享查询,fPublic=0用于私有查询;

fFolder=0表示检索到的记录不是文件夹,fFolder=1表示记录是文件夹(您可以创建文件夹以对查询进行分组)

fDeleted=0表示查询正常使用,fDeleted=1表示查询已删除。

enter image description here