2016-07-20 36 views
1

我有一个奇怪的情况。我有一个情况,我知道一个主键列,但没有它的表。找到主键已知的表格

任何人都知道一个快速'简单的方法来找到这些信息?我希望sp_pkeys可以做到这一点,但它不允许我使用列作为参数。

编辑:这是不一样的寻找与表(我已经知道如何做到这一点)。我正在寻找具有特定主键(这是“重复问题”的子集)的表格。

+0

的[查找包含柱,用指定的名称的所有表]可能的复制(http://stackoverflow.com/questions/4849652/find-all-tables-containing-column-with-specified-name) –

+0

否,不是同一个问题。我已经知道如何查找特定列的表格;我正在寻找一个具有特定主键的表格。 –

回答

2
SELECT COLUMN_NAME, TABLE_NAME 
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + CONSTRAINT_NAME), 'IsPrimaryKey') = 1 
AND COLUMN_NAME = 'yourColumnName' 
+0

这似乎工作! –

1

这是另一种方法。

select OBJECT_NAME(c.Object_ID) 
from sys.columns c 
join sys.indexes i on c.object_id = i.object_id 
where i.is_primary_key = 1 
    and c.name = 'YourColumn' 
+0

没有为我工作 - 测试它,我试着运行sp_pkeys的结果,它给了我答案,它给了我一个不同列的PK。抱歉。 –

+0

也许你有不同模式中的同名表。哦,好吧......看起来你有一个适合你的答案。 –

+0

也许吧。因为我从SSC认识你,所以我有点偏见,并希望将你的标记作为答案,但是我想你。 :-) 好吧。 –