SQL Server:删除FK约束,这不是外键

时间:2013-08-15 17:48:55

标签: sql-server-2008 foreign-keys

我正在使用SQL Server 2008及其Management Studio。我正在做一个Web项目,它有一个工具来自动创建表/关系。

我的网络项目显示此错误:

  

不成功:alter table Tester添加约束FK_c6c4bf4s2rvp56a32nnruww2b外键(游戏)参考游戏

     

列'Game.id'与外键'FK_c6c4bf4s2rvp56a32nnruww2b'中引用列'Tester.game'的数据类型不同

然而,当我在管理工作室运行以下内容时:

ALTER TABLE dbo.Tester DROP CONSTRAINT FK_c6c4bf4s2rvp56a32nnruww2b

我得到以下内容:

  

Msg 3728,Level 16,State 1,Line 1
  'FK_c6c4bf4s2rvp56a32nnruww2b'不是约束。
  消息3727,级别16,状态0,行1   无法删除约束。查看以前的错误。

我很困惑。什么类型的约束是FK_c6c4bf4s2rvp56a32nnruww2b

如何删除它?

谢谢和问候。

2 个答案:

答案 0 :(得分:3)

你可以尝试

 sp_help [table_name]

获取所有外键约束。

当您获得表上的外键约束时。通过写下这样的东西来删除它们: -

ALTER TABLE [dbo].[table_name] DROP CONSTRAINT [Foreign_FK]

答案 1 :(得分:2)

没有这样的约束

第一个错误明确表示无法创建该约束,因为涉及的这两个列的数据类型(Game.IdTester.Game)不匹配。

你应该做的是检查你如何创建导致第一个错误的FK约束 - 并且显式赋予该FK约束一个有意义的名称!