2016-07-20 2 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からあなたを知っているので、私は偏見を持っていて、答えとしてあなたの印を付けることを望んだのですが、私はあなたと結びついています。 :-) しかたがない。 –

関連する問題