如何从名称中识别外键约束?

时间:2013-07-02 10:07:29

标签: sql-server hibernate orm coldfusion sql-server-2012

在ColdFusion 10上对SQL Server 11使用Hibernate ORM。

我收到了错误:

  

[Macromedia] [SQLServer JDBC驱动程序] [SQLServer] ALTER TABLE   语句与FOREIGN KEY约束冲突   “FK9E8E5409B9A80FE4”。冲突发生在数据库“dbname”,表中   “dbo.TableName”,列'TableId'。

这似乎是不言自明的,除了我已经检查了SQL Server Management Studio中的相关表,并且没有找到该表的该ID的外键约束,也没有找到任何相关的表。

有没有办法找到约束,例如通过查询数据库系统表?

更新:我正在查看错误的系统视图 - 查看内部dbname.sys.foreign_keys我看到一堆外键,但检查提到的那个在错误中返回任何内容。这是正确的地方吗?

1 个答案:

答案 0 :(得分:2)

看一下sys.all_objects视图,它更容易查询

select 
     sa.name as FKName
    ,so.name as TableName
from
    sys.all_objects sa
        inner join sys.objects so on sa.parent_object_id = so.[object_id]
where
    sa.[type] = 'F'