2015-01-15 72 views
0

我正在使用Sybase ASE 15.5和該數據庫的陌生人。 直接點 - > 我正在查找一個sql查詢,它可以幫助我獲取sybase中所有表的主鍵以及聲明主鍵的列名。 例如, 如果我有以下表, 組織在列具有主鍵PK_org_id org_id org_alias具有在列主鍵PK_alias_id alias_id具有在列(org_id,ORG_NAME)用於獲取sybase ase 15.x中所有表的主鍵和列名的SQL查詢

主鍵PK_org_temp_id org_temp那麼該查詢應該返回我:

  • TABLE_NAME PK_NAME列名
  • 組織PK_org_id org_id
  • Org_alias P K_alias_id alias_id
  • Org_temp PK_org_temp_id org_id,ORG_NAME

我已經試過以下查詢:

select o.name , i.name 
from sysobjects o, sysindexes i 
where o.id=i.id 
and i.indid = 1 
and o.type = 'U' 

但它只返回我與它的主鍵的表名。 我也想要列名。

請幫忙!

+0

http://stackoverflow.com/questions/14229277/sql-server-2008-get-table-constraints – 2015-01-15 15:57:32

回答

1

使用內置函數index_col(object_name, indexid, N [,owner_id])。 這可讓您檢索特定索引的第N列。用N的不同值稱呼它多次,例如加入master..spt_values,其中type ='P'並提供號碼列爲N.

+0

感謝您的回覆@Rob。我正在尋找一個sql查詢,它會輸出我的表名,主鍵名和它定義的列。你也可以分享一下嗎? – NewUser3542 2015-01-16 10:58:05

1

如果您不想編碼自己的查詢,那麼查看ASE附帶的目錄過程。 'sp_pkeys'應該給你你想要的。