Как получается переменная запроса @Me TFS? - PullRequest
2 голосов
/ 23 марта 2012

Кто-нибудь знает точно, как это значение получено?

Для половины нашей команды это "FistName.LastName".Для другой половины это «FirstName LastName» ...

Я думал, что смогу это выяснить за пять секунд поиска в Google, но все, что я могу найти, - это смутные утверждения, которые говорят «текущий пользователь»«псевдоним текущего пользователя».

В статье MSDN о переменных запроса здесь описывается псевдоним текущего пользователя, но я понятия не имею, что это значит ....

1 Ответ

1 голос
/ 25 марта 2012

При выполнении запроса в Visual Studio TFS создает запрос SQL для него. Если вы запускаете SQL Server Profiler в базе данных Tfs_DefaultCollection, вы должны заметить похожий запрос:

exec sp_executesql N'set nocount on
declare @PersonId as int
declare @rebuildOK as int
declare @PersonName as nvarchar(255)declare @userSid as nvarchar(256)
set @userSid=@P1
exec @rebuildOK=dbo.RebuildCallersViews @PersonId output,@P1
if @rebuildOK<>0 return
DECLARE @AsOfUtc DATETIME; SET @AsOfUtc=@P2
DECLARE @Ids TABLE (Id INT NOT NULL)
INSERT INTO @Ids SELECT X.ID FROM (
SELECT @P3 AS ID
UNION ALL
SELECT @P4 AS ID
) as X

join  dbo.[WorkItemsLatestUsed] RL
on X.ID = RL.[System.Id]
where RL.[System.AreaID] not in
(
    select V.BelowID
    from dbo.[GetInverseUserPermissions](@userSid,1) V
)
option (loop join)


SELECT I.[System.Id],I.[System.Rev],I.[System.AreaId],I.[System.IterationId],I.[System.WorkItemType],I.[System.AssignedTo]
FROM @Ids Ids
JOIN [dbo].[WorkItemsAsOf] I with (nolock)
ON I.[System.Id] = Ids.[Id]
    AND I.[System.ChangedDate] <= @AsOfUtc
    AND @AsOfUtc < I.[System.RevisedDate]
OPTION (LOOP JOIN)
set nocount off
',N'@P1 nvarchar(4000),@P2 datetime,@P3 int,@P4 int',@P1=N'S-1-5-21-3698201826-3150490006-716737659-1107',@P2='2012-03-24 19:48:09.707',@P3=1266,@P4=1587

Обратите внимание на использование хранимой процедуры dbo.RebuildCallersViews, которая в свою очередь обслуживает переменную @userSid и, в конечном счете, временный столбец I.[System.AssignedTo]. Хранимые процедуры в базе данных TFS защищены, поэтому я не могу расшифровать, что происходит дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...