2010-07-07 4 views
3

우리 릴리스에서는 때때로 프로덕션 db에서 스크립트를 실행해야합니다. 표준은 db에서 스크립트를 실행해야하는 경우 .sql 파일을 작업 항목에 첨부하는 것이 었습니다.특정 유형의 첨부 파일이 포함 된 작업 항목에 대한 쿼리

.sql 파일 인 첨부 파일이 포함 된 작업 항목을 쿼리 할 수있는 방법이 있습니까? 릴리스를 푸시해야 할 때마다 첨부 파일을 확인하기 위해 각 작업 항목을 열지 않아도됩니다.

+0

"query"는 WIQL 쿼리 또는 데이터베이스에 대한 SQL 쿼리를 의미합니까? – Robaticus

+0

나는 전자를 선호 하겠지만 후자는 충분할 것이다. 나는 내가 어떻게 후자를 할 수 있을지를 조사하고 있었다. – Dave

답변

2

이 방법은 TfsWorkItemTracking 데이터베이스를 직접 쿼리하여 수행했습니다. Fld10005은 TFS의 다른 인스턴스에서 같을 수도 있고 그렇지 않을 수도 있습니다. 필드는 dbo.Fields 테이블에서 찾을 수 있습니다.


with [project-nodes] (
    ID, 
    [Name], 
    [Path], 
    [Depth]) 
as (
    select 
     t.ID, 
     t.Name, 
     cast(t.Name as varchar(max)) as [Path], 
     0 as [Depth] 
    from dbo.TreeNodes t 
    where t.ID = 220 
    union all 
    select 
     c.ID, 
     c.Name, 
     cast(p.[Path] + '/' + c.Name as varchar(max)), 
     [Depth] + 1 
    from dbo.TreeNodes c 
    inner join [project-nodes] p 
     on c.ParentID = p.ID) 
select 
    t.[Path] as [Area Path], 
    l.Title, 
    l.Fld10005 as [Resolved Date], 
    f.OriginalName 
from dbo.WorkItemsLatest l 
inner join [project-nodes] t 
    on l.AreaID = t.ID 
inner join dbo.WorkItemFiles f 
    on l.ID = f.ID 
where f.OriginalName like '%.sql' 
and l.Fld10005 > '2010-05-21' -- ResolvedDate 
order by 
    t.Name 

1

WIQL을 통해이 작업을 수행 할 수 있지만 성능을 어느 정도 유지하는 또 다른 방법은 이러한 작업에 사용할 사용자 지정 작업 항목 형식을 만드는 것입니다. 당신이 당신의 WIQL 쿼리를 설정 한 경우 그 다음, 할 수

(반 의사)

SELECT Id from WorkItems where 
WorkItemType = 'MySpecialWorkItem' AND 
Status = 'Active'; 

당신은 다음을 통해 반복하고 첨부 된 SQL 파일을 확인할 수 있습니다. WorkItemType 및 Status 조건을 사용하면 반환되는 레코드의 수를 크게 제한해야하며, 첨부 파일을 반복하면 프로세스 성능에 큰 영향을 미치지 않습니다.

+0

그건 나쁜 제안이 아니에요, 나는 그 팀에 의해 실행해야합니다. – Dave

관련 문제