Я нашел таблицу tbl_Identity!
В нашей компании у нас есть две коллекции TFS - назовем их FooBar и FooBar-DSG - двумя соответствующими базами данных: Tfs_FooBar и Tfs_FooBar-DSG.
Таблица [tbl_Identity] находится в базе данных с именем Tfs_Foobar_Configuration.
для поиска записей в [tbl_Identity] таблицы вы должны присоединиться [tbl_ChangeSet]. [OwnerId] на [tbl_IdentityMap]. [LocalId] и с помощью [tbl_IdentityMap]. [MasterId] присоединиться на [tbl_Identity]. Id
Вот что я в итоге сделал - не создавая список команд, а список пользователей с их адресом электронной почты и датой последней регистрации. Я могу использовать этот список для отправки электронной почты с уведомлением о времени простоя TFS.
Вот мои запросы:
SELECT DISTINCT [OwnerId], I.DisplayName, I.MailAddress,
(SELECT TOP 1 CreationDate FROM [Tfs_FooBar-DSG].[dbo].tbl_ChangeSet C2
WHERE C2.OwnerId = C1.OwnerId ORDER BY CreationDate DESC) LatestDate
FROM [Tfs_FooBar-DSG].[dbo].[tbl_ChangeSet] C1
LEFT OUTER JOIN [Tfs_FooBar-DSG].[dbo].[tbl_IdentityMap] IM ON IM.[localId] = C1.OwnerId
LEFT OUTER JOIN Tfs_FooBar_Configuration.[dbo].[tbl_Identity] I ON IM.[masterId] = I.Id
ORDER By LatestDate DESC, [OwnerId], DisplayName, MailAddress
SELECT DISTINCT [OwnerId], I.DisplayName, I.MailAddress,
(SELECT TOP 1 CreationDate FROM [Tfs_FooBar].[dbo].tbl_ChangeSet C2
WHERE C2.OwnerId = C1.OwnerId ORDER BY CreationDate DESC) LatestDate
FROM [Tfs_FooBar].[dbo].[tbl_ChangeSet] C1
LEFT OUTER JOIN [Tfs_FooBar].[dbo].[tbl_IdentityMap] IM ON IM.[localId] = C1.OwnerId
LEFT OUTER JOIN Tfs_FooBar_Configuration.[dbo].[tbl_Identity] I ON IM.[masterId] = I.Id
ORDER By LatestDate DESC, [OwnerId], DisplayName, MailAddress
Update: «Вы не должны писать запросы непосредственно на операционном магазине TFS Это не поддерживается и потенциально опасным» Daniel Mann предупреждает в своем комментарии ниже этого , Решите сами, если вы можете жить с неподдерживаемой функциональностью и насколько опасен запрос SELECT.
Вы не должны писать запросы непосредственно в операционный магазин TFS. Он не поддерживается и потенциально опасен. –