• 查询SQL SERVER表结构信息


    例子:

    SELECT a.name,b.name,a.length,e.text FROM syscolumns a
    left join systypes b on a.xusertype=b.xusertype
    left join syscomments e on a.cdefault=e.id
    WHERE a.id=object_id('table1') ORDER BY a.colid

    SQL Server数据库中表结构信息

    SELECT 
      表名  = case when a.colorder=1 then d.name else '' end,
      表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end,
      字段名 = a.name,
      主键  = case when exists(Select 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
            Select name FROM sysindexes Where indid in(
             Select indid FROM sysindexkeys Where id = a.id AND colid=a.colid))) then '√' else '' end,
      类型  = b.name,
      占用字节数 = a.length,
      长度  = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
      默认值 = isnull(e.text,''),
      字段说明= isnull(g.[value],'')
    FROM 
      syscolumns a
      left join systypes b on a.xusertype=b.xusertype
      inner join sysobjects d on a.id=d.id  and d.xtype='U' and  d.name<>'dtproperties'
      left join syscomments e on a.cdefault=e.id
      left join sysproperties g on a.id=g.id and a.colid=g.smallid  
      left join sysproperties f on d.id=f.id and f.smallid=0
    WHERE d.name='your_table_name' --仅查询指定表时需要该行
        
      获取表内所有字段:

      SELECT name FROM syscolumns WHERE id=object_id('table1') ORDER BY colid

      列出库my中所有的用户建立的表名:

      SELECT * FROM my.dbo.sysobjects WHERE xtype='U' and status>0

      列出表cs的所有属性:

      SELECT * FROM sysobjects WHERE parent_obj = object_id( 'cs')

    下边是关于sysobjects的介绍

      经常我们要查询表的索引,约束,相关性,触发器的属性,那么要知道sysobjects这个表的字段的意思,那么不管要查什么都没有问题!

      Sysobjects:SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等,每个对象在表中占一行。以下是此系统表的字段名称和相关说明。 
      Name,id,xtype,uid,status:分别是对象名,对象ID,对象类型,所有者对象的用户ID,对象状态。 
      xtype:对象类型。可以是下列对象类型中的一种: 
       C = CHECK 约束 
       D = 默认值或 DEFAULT 约束 
       F = FOREIGN KEY 约束 
       L = 日志 
       FN = 标量函数 
       IF = 内嵌表函数 
       P = 存储过程 
       PK = PRIMARY KEY 约束(类型是 K) 
       RF = 复制筛选存储过程 
       S = 系统表 
       TF = 表函数 
       TR = 触发器 
       U = 用户表 
       UQ = UNIQUE 约束(类型是 K) 
       V = 视图 
       X = 扩展存储过程 
      当xtype='U' and status>0代表是用户建立的表,对象名就是表名,对象ID就是表的ID值。

  • 相关阅读:
    负载、系统oracle 系统调优之 利用CPUby小雨
    进程、检查oracle 性能调优 解决CPU问题by小雨
    数据、保存【sqlite】——使用记录by小雨
    MySQL中间变量的用法by小雨
    函数、返回Sql Server常用函数之统计、算数、字符串函数by小雨
    数据库、实体数据库设计原则by小雨
    查看、设置centos下在线安装配置mysqlby小雨
    重启、无效Oracle使用raw via lvmby小雨
    总线、虚拟机VMware 创建虚拟机的磁盘操作by小雨
    驱动、数据库Java HIVE 使用Jdbc连接Hiveby小雨
  • 原文地址:https://www.cnblogs.com/oisiv/p/2441994.html
Copyright © 2020-2023  润新知