1

データベースのテーブル名を取得するクエリは次のとおりです。

SELECT * 
FROM information_schema.tables 
WHERE table_type = 'BASE TABLE'

主キーが複数の列で構成されている場合、テーブルを取得する方法は? または、特定のテーブルの複合主キーを取得しますか?

4

2 に答える 2

1

私がよく理解していれば、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

それが答えでない場合は、詳細をお知らせください。

于 2013-08-31T17:06:40.303 に答える
0

これを試して:

sp_helpindex 'YourTable'
于 2013-08-31T16:50:42.393 に答える