データベースのテーブル名を取得するクエリは次のとおりです。
SELECT *
FROM information_schema.tables
WHERE table_type = 'BASE TABLE'
主キーが複数の列で構成されている場合、テーブルを取得する方法は? または、特定のテーブルの複合主キーを取得しますか?
データベースのテーブル名を取得するクエリは次のとおりです。
SELECT *
FROM information_schema.tables
WHERE table_type = 'BASE TABLE'
主キーが複数の列で構成されている場合、テーブルを取得する方法は? または、特定のテーブルの複合主キーを取得しますか?
私がよく理解していれば、TSQL にはいくつかのオプションがあります。
手順:
exec sp_pkeys 'table', 'schema'
意見:
このクエリは、一意の制約とforeign_keysを含む関連データを返します
select * from information_schema.key_column_usage
where table_schema = 'schema' and table_name = 'table'
主キーに関連する列だけを取得したい場合は、次のようなものを試すことができます。データベースのバージョンによって変わると思いますが、今はわかりません。
select *
from information_schema.key_column_usage as k
where table_schema = 'schema' and table_name = 'table'
and constraint_name = (
select name
from sysobjects as u
where k.table_name = object_name(u.parent_obj)
and u.xtype = 'PK')
order by table_schema, table_name, ordinal_position
それが答えでない場合は、詳細をお知らせください。
これを試して:
sp_helpindex 'YourTable'