2016-07-20 69 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認識你,所以我有點偏見,並希望將你的標記作爲答案,但是我想你。 :-) 好吧。 –