如何在查询中标识表是否具有主键

时间:2013-06-17 11:31:50

标签: sybase sybase-ase

是否可以编写一个确定表是否具有主键的查询?

SELECT * FROM sysobjects WHERE id = OBJECT_ID('TRS') and xtype = PK

如果它没有主要版本,那么它将不返回任何内容。

在这篇link中,作者谈到了使用Xtype,但似乎这是一个古老的术语。

1 个答案:

答案 0 :(得分:3)

如果有主键,这将为您提供密钥及其列名称,否则无效。

SELECT sysobjects.name, syscolumns.name
FROM
  sysobjects INNER JOIN 
  syscolumns ON syscolumns.id = sysobjects.id INNER JOIN
  syskeys ON syskeys.id = sysobjects.id
WHERE 
  sysobjects.type = 'U' AND syskeys.type = 1