我正在尝试检入文件,并且一个文件(一个且只有一个文件)在签入时出现问题。此文件已被删除多次并取消删除(由于架构和设计中的冲突)现在TFS抛出了这个错误:
TF246021:处理您的请求时出错。技术 信息(对于管理员):SQL Server错误:500200
当我们看到事件查看器的日志文件时,问题是:
违反PRIMARY KEY约束'PK_tbl_PendingDelta'。不能 在对象'dbo.tbl_PendingDelta'中插入重复键。
但是,dbo.tbl_PendingDelta
中没有待处理的更改。实际上,这个表是完全空的。这有什么不对?我该如何解决这个问题?
答案 0 :(得分:9)
这似乎与工作空间有关。我在一个工作区上遇到此问题,但能够在不同的工作空间中执行触发错误(回滚先前的回滚)的源代码控制操作。
重新创建工作区可能是一种解决方案。
答案 1 :(得分:3)
我的解决办法是排除罪魁祸首并检查其余部分 然后我检查了罪魁祸首。
(如果你有一个门禁签到,你可能必须先关闭它。)
答案 2 :(得分:1)
我怀疑变更集中的项目以某种方式使用相同的ID两次,因此第一个INSERT很好但第二个会导致违规。但是,由于它们处于同一个事务中,因此第一个INSERT将被回滚,之后您在tbl_PendingDelta中看不到任何内容。
有关此问题的另一个示例,请参阅http://connect.microsoft.com/VisualStudio/feedback/details/693450/tfs-2010-violation-of-primary-key-constraint-pk-tbl-pendingdelta。
我认为你应该用Microsoft Product Support Services来解决这个问题。
答案 3 :(得分:1)
我发生了类似的事情。以前我已经回滚了一些更改,并再次使用相同的名称在解决方案和项目文件中重新引入这些更改。我发现的问题是sql脚本重命名不在Sql.proj文件中,我需要添加它然后关闭解决方案以接受对proj文件的更改。一旦我更正了重命名,确保它在项目文件中,然后我可以检查它。
答案 4 :(得分:1)
我重命名了我的工作区文件夹(包含$ tf的顶层),然后在我想要的分支上获取最新信息,然后取消搁置。
答案 5 :(得分:0)
1。从文件菜单中,单击源代码控制,然后单击工作区。
2。在“管理工作区”对话框的“名称”列下,突出显示要删除的工作区,然后单击“ 删除”。
3。在“确认”对话框中,单击“确定”。
您的工作完成了。
再次映射您的解决方案,然后您便可以正常工作。