【发布时间】:2016-12-06 17:15:33
【问题描述】:
在 Microsoft SQL 中,如果我想获取有关具有特定列名的列出现在我的数据库中的位置的信息,我可以运行以下查询:
select * from information_schema.columns where column_name = 'XXXXX';
此查询返回有关出现具有名称的列的实例的大量信息,但我没有看到任何有关引用约束的信息。
我在下面尝试了一些其他查询,但似乎没有一个能产生我想要的信息:
select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
select * from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
我想写一个这样的查询:
select table_schema, table_name from INFORMATION_SCHEMA.COLUMNS
where column_name = 'XXXXX' and IsPrimaryKey = 1;
编辑: 有人建议这个问题重复了一个关于查找给定表的主键的问题。这个问题是相关的,但有所不同,因为我开始知道列的名称(可能出现在许多表中)并且我希望能够判断是否存在具有相同名称的主键列的表。
【问题讨论】:
-
如果您的 PRIMARY_KEY 是聚集键,那么它就是表。
-
什么版本的 SQL Server?
标签: sql-server tsql database-metadata