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

TFS2015 - List all user and shared queries with their owners

我试图从 TFS2015 数据库中列出所有用户拥有和共享的查询及其所有者,但我找不到用户拥有的查询的所有者,它始终显示为空。我在 SO returns shared queries 上发现了一个类似的主题,但是当将其应用于用户拥有的查询时,它并不 return 任何所有者。 我浏览了 QueryItems table 中的记录,但找不到任何指向查询所有者的字段。 这是我目前使用的 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 做到这一点,那也会很有帮助。

对于 Shared 查询,键应该是 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表示删除查询。