【问题标题】:Is there a way to distinguish between Tfs groups and Tfs Teams in the database?有没有办法区分数据库中的 Tfs 组和 Tfs 团队?
【发布时间】:2018-10-04 11:55:47
【问题描述】:

我试图弄清楚如何在本地 Tfs2015.Update3 (14.102.25423.0) 服务器的数据库中区分 Tfs 组和 Tfs 团队。

我有一个名为“Team BAM”的 Tfs 团队和一个名为“TfsGroup”的 Tfs 组

当比较这两个时,我希望在表 [Tfs_Configuration].[dbo].[tbl_Group] 中找到不同的属性,但可惜什么都没有。也许我在错误的地方搜索,但在比较更多组和团队的示例时,我似乎无法找到可重复的差异。

任何想法如何区分数据库中的团队和组?一方面,上面的 Tfs Web 界面肯定知道如何:-) 非常感谢!

【问题讨论】:

  • “团队”标志是身份的扩展属性。所以我猜这存储在另一个表中,该表通过组 ID 链接到组。另见:blog.jessehouwing.nl/2013/01/…
  • 我手头没有 TFS 数据库来查找确切的表。
  • 感谢杰西的建议!我正在摸索下面的查询,试图想出一个可能的扩展表链接,但还没有运气。 SELECT * FROM [Tfs_Configuration].[INFORMATION_SCHEMA].[COLUMNS] WHERE column_name like '%id%' and TABLE_SCHEMA ='dbo' 如果您确实设法在某个阶段找到表名,将不胜感激 - 并且让我免于白发 :-)

标签: sql-server tfs


【解决方案1】:

以下查询可以列出所有团队:

SELECT map.[TeamId]
      ,map.[ProjectId]
      ,proj.[ProjectNodeName] AS [Team Project Name]
      ,ado.[SamAccountName] AS [Team Name]
  FROM [Tfs_DefaultCollection].[dbo].[tbl_TempTeamProjectMapping] map
  JOIN [Tfs_Warehouse].[dbo].[DimTeamProject] proj ON map.[ProjectId] = proj.[ProjectNodeGUID]
  JOIN [Tfs_DefaultCollection].[dbo].[ADObjects] ado ON map.[TeamId] = ado.[TeamFoundationId]

【讨论】:

  • 感谢 Cece 的建议!不幸的是,我仍然在查询结果中看到团队和组的混合。像 Readers 、 Contributors 和 Project Valid Users 这样的组仍然会在结果集中弹出。在 Tfs Web 界面中,这些被列为 Tfs 组而不是 Tfs 团队。
  • 您是否在 SSMS 中运行此查询?我只在返回的结果中看到 Teams,没有看到任何组。
  • 是的,在 SSMS 2012 上。但它确实跳过了某些组。我知道查询只返回正在使用的组。
  • 您可以考虑使用TFS REST api 而不是在数据库中查询来获取团队列表:GET http://tfs:8080/tfs/_apis/teams?api-version=4.1-preview.2
猜你喜欢
  • 2013-04-22
  • 2010-11-02
  • 2017-12-27
  • 2013-05-17
  • 2016-05-17
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
相关资源
最近更新 更多