我需要从sybase ase数据库中的所有用户表创建数据字典。我不能安装像赛贝斯PowerDesigner这样的工具,所以我必须使用SQL查询来实现。
我在论坛的帮助下组成了这个查询,以显示表名、列名、数据类型、大小而不是空约束。但是我无法找到该列是否是主键,或者是否是聚集主键的一部分。
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
这里有人可以帮助我对所需的表进行必要的连接,以获得指示其主键状态的所需标志吗。我已经阅读了syskey和sysindexes表文档,但无法找到哪个状态对我的目的有益。
请尝试以下代码:
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
问题内容: 是否有一种快速的方法可以从中的所有表获取所有列名,而不必列出所有表? 问题答案:
问题内容: 有没有办法从mysql-database获取主键字段的名称?例如: 我有一张这样的桌子: 其中字段ID是主键(它具有自动递增功能,但我不能使用它)。如何在php中检索字段名称“ id”? 问题答案: 一种更好的方法是使用,因为您并不总是可以访问information_schema。以下作品: Column_name将包含主键的名称。
问题内容: 获取Oracle中所有表的列表? 问题答案: 假设您有权访问DBA_TABLES数据字典视图。如果您没有这些特权但需要它们,则可以请求DBA显式授予您对该表的特权,或者请求DBA授予您该SELECT ANY DICTIONARY特权或SELECT_CATALOG_ROLE角色(这两者都将允许您查询任何数据字典表) )。当然,您可能希望排除某些模式,例如SYS和模式,SYSTEM而这些模
问题内容: 我想学习如何从MS SQL数据库中获取具有标识列的所有表的列表。 问题答案:
我想知道将JavaFX TableView数据获取到集合中的最佳和最有效的方法。我想获得JavaFX TableView中的所有行。
问题内容: 如何获得Python中索引名称的列表?这是我到目前为止的内容: 问题答案: 搜索有关使用库进行检索的信息时,会出现此问题。接受的答案说可以使用,但该方法已删除(截至2017年)。要获取,您可以使用以下代码: