我试图从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做到这一点,那也会有所帮助。
答案 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
表示查询已删除。