关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL语言 »对SQL表结构的查询

    对SQL表结构的查询

    2010-09-28 15:34:00 出处:ITJS
    分享

    假如需要对SQL表结构进行查询,使用存储过程就可以实现,接下来的SQL server内容就会对该方法进行详细的说明,希望对您学习SQL表结构方面有所启迪。

    在应用SQL Server的基于客户机/服务器体系结构的信息系统开发中,有时需要将后台SQL Server上的某一数据库的表结构都打印出来,以便于开发人员查阅及最终文档的形成。SQL Server本身提供了一个系统存储过程 (SP_COLUMNS),可以完成对单个SQL表结构的查询,只要在SQL Server的ISQL-W工具中键入SP_COLUMNS “表名”,并执行即 可得到结果集。

    但该方法有许多不足之处,其主要缺点是:

    1) 只能对单表进行操作,当需要查询一个数据库中所有的表时,需要多次执行SP_COLUMNS ,因此显得非常繁琐。

    2) 查询结果集中包含了许多不必要的信息。

    下面我们创建一个存储过程来完成对某一个数据库中所有SQL表结构的查询。

    在创建一个数据库的同时,系统会自动建立一些系统表,限于篇幅的缘故我们在这里只介绍与应用实例有关的三个系统表(SYSOBJECTS,SYSCOLUMNS,SYSTYPES)及其相关的字段。

    表SYSOBJECTS为数据库内创建的每个对象(约束,规则,表,视图,触发器等)创建一条记录。

    该表相关字段的含义如下:

    SYSOBJECTS.name 对象名,如:表名,视图名。

    SYSOBJECTS.id 对象id。

    SYSOBJECTS.type 对象类型(p存储过程,v视图,s系统表,u用户表)。

    表SYSCOLUMNS 为每个表、视图中的每个列和每个存储过程的每个参数创建一条记录。

    该表相关字段的含义如下:(此处的列系指数据库中每个表、视图中的列)

    SYSCOLUMNS. id 该列所属的表的id,可与SYSOBJECTS.id相关联

    SYSCOLUMNS.colid 列id,表示该列是表或视图的第几列。

    SYSCOLUMNS.type 物理存储类型,可与SYSTYPES.type相关联。

    SYSCOLUMNS.length 数据的物理长度。

    SYSCOLUMNS.name 列名字,即字段名。

    SYSCOLUMNS .Pre 列的精度级。

    SYSCOLUMNS .Scale 列的标度级。

    表SYSTYPES 为每个系统和每个用户提供的数据类型创建一条记录,假如它们存在,给定域和默认值,描述系统提供的数据类型的行不可更改。

    该表相关字段的含义如下:

    SYSTYPES.name 数据类型的名字。

    SYSTYPES.type 物理存储数据类型。

    在SQL SERVER的企业管理器(SQL ENTERPRISE MANAGER)中,选定某一数据库,创建存储过程print_dbstructure。

    源代码如下:

    if exists (select * from sysobjects where id = object_id('dbo. print_dbstructure  ') and sysstat & 0xf = 4) 存储过程  drop procedure dbo. print_dbstructureGO  CREATE PROCEDURE print_dbstructureAS  SELECT DISTINCT sysobjects.name, syscolumns.colid,  syscolumns.name, systypes.name, syscolumns.prec, syscolumns.scale  FROM syscolumns, sysobjects, systypes  WHERE sysobjects.id = syscolumns.id AND systypes.type = syscolumns.type AND ((sysobjects.type='u'))   GO  

    首先判断是否存在一个名为print_dbstructure的存储过程,假如存在,就摘除它,否则,定义SQL语句建立新的存储过程。从三个系统表中选出满足条件的记录(即该数据库中保存在系统表中的用户表信息)。

    执行时,在ISQL_W工具中,选定print_dbstructure所在的数据库,执行该存储过程,即可得到结果集(即该数据库中用户表的结构信息)。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    SQL汉字转换为拼音的函数

    windows 7系统无法运行Photoshop CS3的解决方法

    巧用MySQL加密函数对Web网站敏感数据进行保护

    MySQL基础知识简介

    Windows7和WinXP下如何实现不输密码自动登录系统的设置方法介绍

    windows 7系统ip地址冲突怎么办?windows 7系统IP地址冲突问题的

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。