我使用Sybase ASE 15.5和这个数据库的陌生人。 直截了当 - > 我正在寻找一个sql查询,它可以帮助我获取sybase中所有表的主键以及声明主键的列名。 例如, 如果我有以下表格, 组织org_id上具有主键PK_org_id的组织 org_alias在列alias_id上具有主键PK_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 :(得分:1)
使用built_in函数index_col(object_name, indexid, N [,owner_id])
。
这使您可以检索特定索引的第N列。使用不同的N值对其进行多次调用,例如将其与master..spt_values
联系,其中type =' P'并将数字列提供为N.
答案 1 :(得分:1)
如果您不想编写自己的查询代码,请查看ASE附带的目录过程。 ' sp_pkeys'应该给你你想要的东西。