Sybase查询表结构的方法(相似于Oracle的Desc)

经过我多次验证。最终找到了Sybase中查询数据库结构的方法了。

在此之前,我就非常不解这Sybase数据库怎么就没有和Oracle、MySql一样简便的方法呢

desc 表名;

在网上查询之后,得到一个结果。

sp_help 表名;

可是这样查出了多个结果。尽管里面有我们想要的结果。但我们仅仅取一个,并且还在中间。

怎么办呢?看存储过程源代码。把我们想要的结果截取出来吧。

sp_help存储过程在sybsystemprocs库中,

源代码:

代码篇幅过长,此处省略……

一行一行推断,找下去。

我们发如今源代码的556行“if (@sysstat & 15) in (1, 2, 3)”有我们想要的结果,这段IF语句是将表结果查询之后插入一个暂时表#helptype中,然后再进行查询出来的。

我们不要那么麻烦,仅仅取里面的三列:字段名,字段类型。字段长度。

当然你想封装成存储过程也能够的,但不能使用desc就是。

select isnull(c.name, ‘NULL‘) ‘字段名‘,
t.name ‘字段类型‘,
c.length ‘字段长度‘
from syscolumns c, systypes t, sysxtypes x
where c.id = object_id(‘表名‘)
and c.usertype *= t.usertype
and c.xtype *= x.xtid;

时间: 2024-12-20 00:14:51

Sybase查询表结构的方法(相似于Oracle的Desc)的相关文章

Sybase查询表结构的方法(类似于Oracle的Desc)

经过我多次验证,终于找到了Sybase中查询数据库结构的方法了. 在此之前,我就很不解这Sybase数据库怎么就没有和Oracle.MySql一样简便的方法呢 desc 表名; 在网上查询之后,得到一个结果. sp_help 表名; 但是这样查出了多个结果.虽然里面有我们想要的结果,但我们只取一个,而且还在中间. 怎么办呢?看存储过程源码,把我们想要的结果截取出来吧. sp_help存储过程在sybsystemprocs库中, 源码: /* Sccsid = "%Z% generic/sproc

sybase表结构导出方法

sybase ASE自带了一个导出对象结构的命令行工具:ddlgen 比较详细的用法,请参照:用DDLGEN从ASE数据库中提取对象的定义语法 如果对象结构中包含中文,使用参数: -Jcp936 比较实用的用法如下: 1.导出数据库tpchdb内所有表的表结构(包括索引): ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TU -N%.% -Jcp936 -O./tables.sql 2.导出数据库tpchdb内所有视图的创建语法: ddlgen -Usa

新建存过,查询表结构的方法。

CREATE PROC [dbo].[sp_help_table] @tableName NVARCHAR(50)--表名称 AS BEGIN SELECT a.colorder 字段序号,a.name 字段名,b.name 字段类型,b.length AS 字段长度,g.[value] AS 字段说明 FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.i

JFinal里得到表结构的方法总结

JFinal里得到表结构的方法总结: 1.得到已经配置的Model类的表结构.(推荐用法).如下,定义一个User的Model类,这样就可以得到Model类的表结构了.具体实现不明白,请高手指导. public void tableMappingTest(){  Table table = TableMapping.me().getTable(User.me.getClass());    renderText(table.getColumnTypeMap().toString());   }

sql server 查询表结构

--查询表结构start SELECT 序号 = a.colorder,字段名称 = a.name,字段描述 = f.value, 标识 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity') = 1 then '√' else '' end, 主键 = case when exists(SELECT 1 FROM sysobjects where xtype = 'PK' and parent_obj = a.id and name in (

【方法整理】Oracle 获取trace跟踪文件名的几种常用方式

[方法整理]Oracle 获取trace跟踪文件名的几种常用方式 1  BLOG文档结构图     2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① trace跟踪文件的获取   Tips: ① 本文在itpub(http://blog.itpub.net/26736162).博客园(http://www.cnblogs.com/lhrbest)和微信公众号(xiaomaimiaolhr)有同

用实验方法加深理解Oracle的外连接(left/right/full)和内连接(inner)

总是对Oracle的左连接.右连接以及(+)对应的外连接类型糊涂,通过实验加深对连接类型语法的理解.外连接分为三种: 1. 左外连接,对应SQL关键字:LEFT (OUTER) JOIN 2. 右外连接,对应SQL关键字:RIGHT (OUTER) JOIN 3. 全外连接,对应SQL关键字:FULL (OUTER) JOIN 左右外连接都是以一张表为基表,在显示基表所有记录外,加上另外一张表中匹配的记录.如果基表的数据在另一张表中没有记录,那么相关联的结果集行中显示为空值. 精确点说,引用MO

SQL Server里查询表结构命令

现提供两条命令查询表结构: 1.sp_help table_name; 如: [sql] sp_help Student; 2.sp_columns table_name; 如: [sql] sp_columns Student; 推荐使用sp_help table_name,因为这条命令查询出的表结构信息更加详细.

Sqlserver查询表结构信息-字段说明、类型、长度等信息

Sqlserver 中查询表结构信息-字段说明.类型.长度等信息综合语法. SELECT 表名 = d.name,--case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = a.name, 标识 = case when COLUMNPROPERTY( a.id,a.name,'