Sql 如何获取Sybase中所有表的主键
我需要从sybase ase数据库中的所有用户表创建数据字典。我无法安装Sybase PowerDesigner之类的工具,因此我必须使用SQL查询使之成为可能 我在论坛的帮助下编写了这个查询,以显示表名、列名、数据类型、大小和NOTNULL约束。但是我无法找到该列是否是主键,或者是否是集群主键的一部分Sql 如何获取Sybase中所有表的主键,sql,sybase,sap-ase,data-dictionary,Sql,Sybase,Sap Ase,Data Dictionary,我需要从sybase ase数据库中的所有用户表创建数据字典。我无法安装Sybase PowerDesigner之类的工具,因此我必须使用SQL查询使之成为可能 我在论坛的帮助下编写了这个查询,以显示表名、列名、数据类型、大小和NOTNULL约束。但是我无法找到该列是否是主键,或者是否是集群主键的一部分 SELECT O.name as "Table", C.name as "Column", C.length as "Length",
SELECT O.name as "Table",
C.name as "Column",
C.length as "Length",
T.name as "Datatype",
C.status as "Allow Null",
CASE C.status
WHEN 8 THEN 'NULL'
WHEN 0 THEN 'NOT NULL'
END as "NULLS"
FROM sysobjects O,
syscolumns C,
systypes T
WHERE O.id = C.id
AND O.type = "U" -- user tables only
AND C.usertype = T.usertype
ORDER BY O.name, C.colid
这里的任何人都可以帮助我与所需的表进行必要的连接,以获得指示其主键状态的所需标志。我已经阅读了表格和文档,但无法找到对我有利的状态。请尝试以下代码:
SELECT O.name as "Table",
C.name as "Column",
C.length as "Length",
T.name as "Datatype",
C.status as "Allow Null",
CASE C.status
WHEN 8 THEN 'NULL'
WHEN 0 THEN 'NOT NULL'
END as "NULLS",
ISNULL((select "Y" as PK_FLAG from syskeys K where O.id=K.id
and K.type = 1 and (C.colid =K.key1 or C.colid =K.key2 OR C.colid =K.key3 OR C.colid =K.key4 OR C.colid =K.key5 OR C.colid =K.key6 OR C.colid =K.key7 Or C.colid =K.key8 )),"N") as Primary_Key_Flag
FROM sysobjects O,
syscolumns C,
systypes T
WHERE O.id = C.id
AND O.type = "U" -- user tables only
AND C.usertype = T.usertype
ORDER BY O.name, C.colid
这应该会有帮助。您有什么原因不能使用
ddlgen
?