aar*_*ist 25 sql sybase metadata isql sybase-ase
我可以访问命令行isql,我喜欢获取给定数据库的所有表的元数据,可能是格式化文件.我怎么能做到这一点?
谢谢.
Luk*_*sik 60
检查sysobjects和syscolumns表.
这是Sybase系统表的图表.
所有用户表的列表:
SELECT * FROM sysobjects WHERE type = 'U'
Run Code Online (Sandbox Code Playgroud)
您可以将"U"更改为其他对象:
表中的列列表:
SELECT sc.*
FROM syscolumns sc
INNER JOIN sysobjects so ON sc.id = so.id
WHERE so.name = 'my_table_name'
Run Code Online (Sandbox Code Playgroud)
Pas*_*ent 46
sp_help 是你在找什么.
有关sp_help系统过程的Sybase联机文档:
描述
报告有关数据库对象(sysobjects中列出的任何对象)以及系统或用户定义的数据类型以及计算列和基于函数的索引的信息.列显示optimistic_index_lock.
句法
sp_help [objname][...]
以下是publishers表的(部分)输出(粘贴自在数据库对象上使用sp_help):
Name Owner Object_type Create_date
---------------- ----------- ------------- ------------------------------
publishers dbo user table Nov 9 2004 9:57AM
(1 row affected)
Column_name Type Length Prec Scale Nulls Default_name Rule_name
----------- ------- ------ ----- ------- ------- -------------- ----------
pub_id char 4 NULL NULL 0 NULL pub_idrule
pub_name varchar 40 NULL NULL 1 NULL NULL
city varchar 20 NULL NULL 1 NULL NULL
state char 2 NULL NULL 1 NULL NULL
Access_Rule_name Computed_Column_object Identity
------------------- ------------------------- ------------
NULL NULL 0
NULL NULL 0
NULL NULL 0
NULL NULL 0
Run Code Online (Sandbox Code Playgroud)
仍引用在数据库对象上使用sp_help:
如果在不提供对象名称的情况下执行sp_help,则生成的报告将显示sysobjects中的每个对象及其名称,所有者和对象类型.还显示了systypes中每个用户定义的数据类型及其名称,存储类型,长度,是否允许空值以及绑定到它的任何默认值或规则.该报告还指出是否已为表或视图定义了任何主键或外键列.
SELECT
DB_NAME() TABLE_CATALOG,
NULL TABLE_SCHEMA,
so.name TABLE_NAME,
sc.name COLUMN_NAME,
sc.colid ORDINAL_POSITION,
NULL COLUMN_DEFAULT,
CASE WHEN st.allownulls=1 THEN 'YES'
ELSE 'NO'
END IS_NULLABLE,
st.name DATA_TYPE,
CASE WHEN st.name like '%char%' THEN st.length
END CHARACTER_MAXIMUM_LENGTH,
CASE WHEN st.name like '%char%' THEN st.length
END*2 CHARACTER_OCTET_LENGTH,
CASE WHEN st.name in ('numeric','int') THEN st.length
END NUMERIC_MAXIMUM_LENGTH,
CASE WHEN st.name in ('numeric','int') THEN st.prec
END NUMERIC_PRECISION,
NULL NUMERIC_PRECISION_RADIX,
CASE WHEN st.name in ('numeric','int') THEN st.scale
END NUMERIC_SCALE,
CASE WHEN st.name in ('datetime') THEN st.prec
END DATETIME_PRECISION,
NULL CHARACTER_SET_CATALOG,
NULL CHARACTER_SET_SCHEMA,
NULL COLLATION_CATALOG,
NULL COLLATION_SCHEMA,
NULL DOMAIN_CATALOG,
NULL DOMAIN_SCHEMA,
NULL DOMAIN_NAME
FROM
sysobjects so
INNER JOIN
syscolumns sc
ON sc.id = so.id
inner join systypes st on st.usertype = sc.usertype
WHERE so.name = 'TableName'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
197524 次 |
| 最近记录: |