Sql server 2008 SQL Server:删除不是外键的FK约束

Sql server 2008 SQL Server:删除不是外键的FK约束,sql-server-2008,foreign-keys,Sql Server 2008,Foreign Keys,我正在使用SQLServer2008及其管理工作室。我正在做一个web项目,它有一个自动创建表/关系的工具 “我的web项目”显示此错误: 不成功:alter table测试仪添加约束FK_c6c4bf4s2rvp56a32nnruww2b外键(游戏)参考游戏 列“Game.id”与外键“FK_c6c4bf4s2rvp56a32nnruww2b”中引用列“Tester.Game”的数据类型不同 但是,当我在management studio中运行以下命令时: ALTER TABLE dbo.Te

我正在使用SQLServer2008及其管理工作室。我正在做一个web项目,它有一个自动创建表/关系的工具

“我的web项目”显示此错误:

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

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

但是,当我在management studio中运行以下命令时:

ALTER TABLE dbo.Tester DROP CONSTRAINT FK_c6c4bf4s2rvp56a32nnruww2b
我得到以下信息:

Msg 3728,第16级,状态1,第1行
“FK_c6c4bf4s2rvp56a32nnruww2b”不是约束条件。
Msg 3727,第16级,状态0,第1行
无法删除约束。请参阅前面的错误

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

我怎样才能删除它

谢谢和问候。

你可以试试

 sp_help [table_name]
获取所有外键约束

当您获得表上的外键约束时。写下这样的话,放下它们:-

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

没有这样的约束

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


您应该做的是检查您是如何创建导致第一个错误的FK约束的,并显式地为该FK约束指定一个有意义的名称

我尝试了“sp_help dbo.Tester”,但得到了一个错误:Msg 102,级别15,状态1,第1行“.”附近的语法不正确。谢谢。我运行了它,结果很好。但是,我只能看到PK键。未列出有问题的约束。否。我看不出有问题的约束。@curious1:-没有您提到的标准外键约束。Rahul,也非常感谢您的帮助。你说得对,没有这样的限制。最佳。有问题的约束是由自动化工具创建的。无论如何,我可以列出数据库的所有约束?@curious1:对不起-输入错误-应该是
SELECT*FROM sys.foreign\u keys
-此目录视图显示数据库中定义的所有外键约束如果两个表没有相同的数据类型,则无法在它们之间创建FK约束。您的应用程序需要考虑这一点。坦率地说,让用户创建数据库对象的设计是一个糟糕的想法。用户不了解数据库设计,总是创建垃圾,这将损害性能并存在数据完整性问题。