2010-07-07 54 views
3

在我們的發行版中,有時需要在我們的生產數據庫上運行腳本。如果腳本需要在db上運行,那麼標準就是將.sql文件附加到工作項目上。工作查詢包含特定類型附件的項目

有沒有什麼辦法可以查詢包含附件是.sql文件的工作項?我不希望每次需要推送發佈時都打開每個工作項目以檢查這些附件。

+0

通過「查詢」你的意思是一個WIQL查詢,或對數據庫的SQL查詢? – Robaticus 2010-07-07 19:41:40

+0

我寧願前者,但後者就足夠了。我只是在研究如何才能做到後者。 – Dave 2010-07-07 20:05:11

回答

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 2010-07-09 03:14:12

相關問題