19

我正在尝试签入一个文件,并且一个文件(一个且只有一个文件)在签入时出现问题。该文件已被多次删除并取消删除(由于架构和设计冲突)现在是 TFS抛出此错误:

TF246021: 处理您的请求时出错。技术信息(针对管理员):SQL Server 错误:500200

正如我们看到事件查看器的日志文件,问题是:

违反主键约束“PK_tbl_PendingDelta”。无法在对象“dbo.tbl_PendingDelta”中插入重复键。

但是, 中没有待处理的更改dbo.tbl_PendingDelta。事实上,这张桌子完全是空的。这里有什么问题?我怎么解决这个问题?

4

6 回答 6

10

这似乎与工作区有关。我在一个工作区遇到了这个问题,但能够在另一个工作区执行触发错误(回滚先前的回滚)的源代码控制操作,没有任何问题。

重新创建工作区可能是一种解决方案。

于 2014-06-27T01:50:03.080 回答
4

1.从文件菜单中,单击源代码管理,然后单击工作区

2.在管理工作区对话框中,在名称列下,突出显示要删除的工作区,然后单击删除

3.在确认对话框中,单击确定。

你的工作完成了。

并再次映射您的解决方案,然后您就可以正常工作。

于 2020-01-11T18:25:15.973 回答
3

我的解决方案是排除罪魁祸首并检查其余部分。
然后我检查了罪魁祸首。

(如果您有门控签到,则可能必须先将其关闭。)

于 2013-11-11T10:29:12.573 回答
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 产品支持服务来解决这个问题。

于 2013-06-06T13:15:53.513 回答
1

我也发生过类似的事情。以前我已经回滚了一些更改,并在解决方案和项目文件中再次以相同的名称重新引入了这些更改。我发现的问题是 sql 脚本重命名不在 Sql.proj 文件中,我需要添加它,然后关闭解决方案以接受对 proj 文件的更改。一旦我更正了重命名,确保它在项目文件中,然后我可以将其签入。

于 2014-03-10T19:34:05.963 回答
1

我重命名了我的工作区文件夹(包含 $tf 的顶层),然后在我想要的分支上获取了最新信息,然后取消搁置工作。

于 2015-07-14T08:40:23.677 回答