如何获得Sysbase的表结构?

conis 2008-02-17 07:52:11
我想获取数据库的表结构信息,分别要取得表名,注释,是否为空,是否为主健等信息,示例(SQL Server)

/*
Author:Conis
CreateDate:16:21 2007-08-09
Description:
获取指定表的所有字段属性
Remark:
 1.如果你不精通SQL代码,请不要随便修改,以免程序不能正常运行。
` 2.字段名称不能修改,否则会导致程序错误
3.如果你一定要修改,建议在修改之前做好备份
=======================================================================
| CopyRight(C)Conis YI |
| URL:http://www.conis.cn |
| E-Mail:Conis.yi@gmail.com |
=======================================================================
*/

DECLARE @Version VARCHAR(100)
DECLARE @SysTable VARCHAR(50)
DECLARE @sql NVARCHAR(2000)
DECLARE @SmallID VARCHAR(10)
DECLARE @MajorID VARCHAR(10)

SET @Version = @@VERSION
IF CHARINDEX('9.00', @Version) = 0 --2005
BEGIN
SET @SysTable = 'sysproperties'
SET @SmallID = 'smallid'
SET @MajorID = 'id'
END
ELSE --2000
BEGIN
SET @SysTable = 'sys.extended_properties'
SET @SmallID = 'minor_id'
SET @MajorID = 'major_id'
END

SET @sql =
'SELECT
col.name AS ''FieldName'',
(CASE WHEN (SELECT COUNT(*)
FROM sysobjects
WHERE (name in
(SELECT name
FROM sysindexes
WHERE (id = col.id) AND (indid in
(SELECT indid
FROM sysindexkeys
WHERE (id = col.id) AND (colid in
(SELECT colid
FROM syscolumns
WHERE (id = col.id) AND (name = col.name))))))) AND
(xtype = ''PK''))>0 THEN 1 ELSE 0 END) AS ''IsKey'',
typ.name AS ''Type'',
col.length AS ''Length'',
ext.[value] AS ''Description'',
col.isnullable AS ''AllowNull'',
com.text AS ''DefaultValue'',
col.colstat AS ''IsOutPut'',
obj.Name AS ''TableName''

FROM syscolumns col
LEFT JOIN systypes typ on col.xtype = typ.xusertype
INNER JOIN sysobjects obj on col.id = obj.id
LEFT JOIN syscomments com on col.cdefault = com.id
LEFT JOIN [PROPERTIES] ext on col.id = ext.[MAJORID] AND col.colid = ext.[SMALLID]
WHERE
obj.name in ({0}) AND (obj.xtype = ''U'' OR obj.xtype = ''V'')
ORDER BY obj.name'

SET @sql = REPLACE(@sql, '[PROPERTIES]', @SysTable)
SET @sql = REPLACE(@sql, '[SMALLID]', @SmallID)
SET @sql = REPLACE(@sql, '[MAJORID]', @MajorID)
EXEC sp_executesql @sql

/*
Author:Conis
CreateDate:16:50 2007-08-09
Description:
获取所有表的属性
Remark:
 1.如果你不精通SQL代码,请不要随便修改,以免程序不能正常运行。
` 2.字段名称不能修改,否则会导致程序错误
3.如果你一定要修改,建议在修改之前做好备份
=======================================================================
| CopyRight(C)Conis YI |
| URL:http://www.conis.cn |
| E-Mail:Conis.yi@gmail.com |
=======================================================================
*/
DECLARE @Version VARCHAR(100)
DECLARE @SysTable VARCHAR(50)
DECLARE @sql NVARCHAR(1000)
DECLARE @SmallID VARCHAR(10)

SET @Version = @@VERSION
IF CHARINDEX('9.00', @Version) = 0 --2005
BEGIN
SET @SysTable = 'sysproperties'
SET @SmallID = 'smallid'
END
ELSE --2000
BEGIN
SET @SysTable = 'sys.extended_properties'
SET @SmallID = 'minor_id'
END

SET @sql = '
SELECT obj.name AS ''Name'',
CASE --如果是表,则查询表的备注信息。
WHEN obj.xtype = ''U'' THEN
(SELECT TOP 1 ext.value FROM [PROPERTIES] ext WHERE
ext.[SMALLID] = obj.id and ext.[SMALLID] = 0
)
ELSE ''''
END AS ''Description'',
CASE obj.xtype
WHEN ''U'' THEN ''Table''
WHEN ''P'' THEN ''Procedure''
WHEN ''V'' THEN ''View''
END AS ''Type''
FROM sysobjects obj
WHERE (obj.xtype = ''U'' OR obj.xtype = ''V'')
ORDER BY obj.xtype'
SET @sql = REPLACE(@sql, '[PROPERTIES]', @SysTable)
SET @sql = REPLACE(@sql, '[SMALLID]', @SmallID)
EXEC sp_executesql @sql
...全文
396 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlebiy 2008-11-26
  • 打赏
  • 举报
回复
sp_help 后面直接跟表名即可获得表的结构信息
后面没有表名,就是获得所有的数据库表
或者用select * from sysobjects得到表名
snake_gz 2008-11-26
  • 打赏
  • 举报
回复
长知识了
  • 打赏
  • 举报
回复
sp_helptext TA
  • 打赏
  • 举报
回复
select a.name,b.name bname,a.length,c.text,g.text gtext from syscolumns a
left join systypes b on a.usertype=b.usertype
left join syscomments c on a.cdefault=c.id
left join syscomments g on a.id=g.id AND a.colid=g.colid
where a.id =( select id from sysobjects where name='表名')
liuyann 2008-02-18
  • 打赏
  • 举报
回复

首先通过sysobjects表查询到表名对应的id
select id from sysobjects where name='tablename'

然后查询syscolumns表的name字段

select name from syscolumns where id=@id
liuyann 2008-02-18
  • 打赏
  • 举报
回复

sp_help tablename
PDMReader是浏览速查pdm(*.pdm)文件的免费工具软件,与SyBase公司的PowerDesigner产品相比的优势是:它可以以最快的速度找到您要查到的数据字典信息,大大提高日常工作效率。PDMReader也具备ADO连接数据库的基本建议功能,并提供比如SQL脚本导出,excel,word,html,xls,txt文件导出等。 如果您或者您所在公司在数据库开发中使用SyBase公司的PowerDesigner产品进行Physical Data Model数据字典的设计,并且工作中经常进行数据库操作,那么这款软件再适合您不过了。比如,您想查找某个结构,并且想查看其中某字段的A,B,C状态值具体含义代什么,通过PowerDesigner进行查找,您可能需要打开多个Pdm文件进行搜索,搜索到结果后可能要经过多次鼠标点击操作才能找到您要查找到的信息。如果不记得您要查找的在哪个pdm数据字典文件中,那么可要花费您大量的时间。而PDMReader则可以最迅速快捷的找到您想要查找到的结构信息,简单到输入关键字查找即可得到结果。当然,当您的pdm(*.pdm)数据字典文件发生变更后,PDMReader会自动提出重新读取该pdm数据字典文件,以达到实时最新,使查询结果为最新数据字典结果。 PDMReader功能集中于数据字典查询管理和Ado数据库客户端辅助工具两个方面,与PowerDesigner相比在模型设计上没有可比性,不能浏览模型关系图。PDMReader可以作为PowerDesigner的有益补充,它可以作为IT工程师日常工作的数据字典常用工具。PDMReader会在大家的使用过程中逐步进行完善,欢迎大家提出宝贵意见和建议。 主要功能: 数据字典查询 导出为word,html格式的数据字典文件. 逆向获取结构信息,为您制作数据字典。 辅助功能,比如SQL脚本生成,excel,word,html,xls,txt文件导出等。 数据字典和结构的校对功能。
PDMReader是浏览速查pdm(*.pdm)文件的免费工具软件,与SyBase公司的PowerDesigner产品相比的优势是:它可以以最快的速度找到您要查到的数据字典信息,大大提高日常工作效率。PDMReader也具备ADO连接数据库的基本建议功能,并提供比如SQL脚本导出,excel,word,html,xls,txt文件导出等。 如果您或者您所在公司在数据库开发中使用SyBase公司的PowerDesigner产品进行Physical Data Model数据字典的设计,并且工作中经常进行数据库操作,那么这款软件再适合您不过了。比如,您想查找某个结构,并且想查看其中某字段的A,B,C状态值具体含义代什么,通过PowerDesigner进行查找,您可能需要打开多个Pdm文件进行搜索,搜索到结果后可能要经过多次鼠标点击操作才能找到您要查找到的信息。如果不记得您要查找的在哪个pdm数据字典文件中,那么可要花费您大量的时间。而PDMReader则可以最迅速快捷的找到您想要查找到的结构信息,简单到输入关键字查找即可得到结果。当然,当您的pdm(*.pdm)数据字典文件发生变更后,PDMReader会自动提出重新读取该pdm数据字典文件,以达到实时最新,使查询结果为最新数据字典结果。 PDMReader功能集中于数据字典查询管理和Ado数据库客户端辅助工具两个方面,与PowerDesigner相比在模型设计上没有可比性,不能浏览模型关系图。PDMReader可以作为PowerDesigner的有益补充,它可以作为IT工程师日常工作的数据字典常用工具。PDMReader会在大家的使用过程中逐步进行完善,欢迎大家提出宝贵意见和建议。 主要功能: 数据字典查询 导出为word,html格式的数据字典文件. 逆向获取结构信息,为您制作数据字典。 辅助功能,比如SQL脚本生成,excel,word,html,xls,txt文件导出等。 数据字典和结构的校对功能。 生成WIKI格等
请先免积分下载一下软件图片:http://download.csdn.net/source/3426114 1.该软件为可视化界面,操作方便,可以打开pdm文件,可以生成sql,也可以查询数据库,且可以生成 po 、bo、dao等文件(编写模板,可以生成任何语言的代码文件),而且可以编辑模板生成代码(使用方法请见说明文档)。 2.如果您或者您所在公司在数据库开发中使用SyBase公司的PowerDesigner产品进行Physical Data Model数据字典的设计,并且工作中经常进行数据库操作,那么这款软件再适合您不过了。比如,您想查找某个结构,并且想查看其中某字段的A,B,C状态值具体含义代什么,通过PowerDesigner进行查找,您可能需要打开多个Pdm文件进行搜索,搜索到结果后可能要经过多次鼠标点击操作才能找到您要查找到的信息。如果不记得您要查找的在哪个pdm数据字典文件中,那么可要花费您大量的时间。而PdmHelper提供了强大的查找功能,可以利用(列)名称或代码模糊查找功能,可以最迅速快捷的找到您想要查找到的结构信息,简单到输入关键字查找即可得到结果。 3.它可以作为IT工程师日常工作的数据字典常用工具。pdmHelper会在大家的使用过程中逐步进行完善,欢迎大家提出宝贵意见和建议。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧