如何:永久删除孤立文件
更新:2007 年 11 月
当客户端用户从工作项中删除附件时,您可能要永久删除孤立文件。例如,工作项可能含有已损坏的或带有病毒的附加文件。
删除该文件会将其从工作项和项目中移除。数据库仍然包含元数据和内容的行。但是,RemovedDate 会更改为当前日期和时间,并且该文件会变成孤立文件。作为数据库管理员,您可以永久地删除该附件。
该文件的内容在 TfsWorkItemTrackingAttachment 数据库中存储为表示该文件的单个项。该项包含一个 GUID 和其内容作为映像。
该文件的元数据存储在 TfsWorkItemTracking 数据库的 WorkItemFiles 表中。元数据包括工作项的 ID 号。
有关 SQL Server 和 Team Foundation Server 的更多信息,请参见了解 SQL Server 和 SQL Server Reporting Services。
必需的权限
若要执行此过程,您必须是“SQL Server Administrator”组的成员,或者具有发出 DELETE 命令所需的数据库管理权限。从团队项目中移除之后,感染了病毒的文件不可用。
删除孤立的工作项附件
在团队资源管理器中,打开工作项并从“文件”选项卡中删除该文件。
说明:
客户端用户或管理员可以删除该文件,使其在数据库中成为孤立文件。
以拥有数据库管理权限的用户身份登录到数据层服务器。
依次单击“开始”、“所有程序”、“Microsoft SQL Server 2005”,然后单击“SQL Server Management Studio”。
在“连接到服务器”对话框中选择服务器,再单击“连接”。
说明:
如果对话框中没有该服务器的名称,可以将名称直接键入到框中。
在 TfsWorkItemTracking 数据库中运行查询,以获取工作项的附件列表。
例如,您可以使用下面的这个查询,该查询返回由 FldID 值 50 和工作项 ID 所指示的带有附件的项:
USE TfsWorkItemTracking GO SELECT * FROM WorkItemFiles WHERE FldID=50 AND ID = 15
在查询结果的“OriginalName”列中,找到文件名,注意在“FilePath”列中找到的 GUID。
在 TfsWorkItemAttachment 数据库中,发出基于该 GUID 的 Delete 查询。
说明:
无法撤消“删除”查询的操作。作为预防措施,可在运行“删除”查询前备份数据。
USE TfsWorkItemAttachment GO DELETE FROM Attachments WHERE FileGuid=<<GUID>>