zoukankan      html  css  js  c++  java
  • 获取表结构信息

                   
           

             获取表信息
                                 
    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
    ='LW_Equipment_Stock_List'    --如果只查询指定表,加上此条件


         获取表内所有字段
        
    Select  Name   From SysColumns Where ID=OBJECT_ID('table1'Order By ColID

     下边是关于 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值。
    用: select * from misa.dbo.sysobjects where xtype='U'and status>0 就可以列出库misa中所有的用户建立的表名。
     
    SELECT * FROM SYSOBJECTS WHERE PARENT_OBJ = OBJECT_ID( 'CS') AND XTYPE='TR'
    列出表cs的所有属性,上面是trigger!


    引用http://moretea.cnblogs.com/archive/2005/08/14/214667.aspx




  • 相关阅读:
    Ruby on rails开发从头来(windows)(二十七) 测试驱动开发
    数据库设计14技巧
    [原]DataReader 处理多个结果集—NextResult的用法
    MsSQL的字段类型
    在C#中把两个DataTable连接起来,相当于Sql的Inner Join方法
    征集佳句SQL导入导出大全
    [转贴]Hello NHibernate
    [转]数据库开发21条军规
    ASP.NET 中的正则表达式
    经典推荐—.NET相关最好东东(全球最新评价)
  • 原文地址:https://www.cnblogs.com/gwazy/p/478613.html
Copyright © 2011-2022 走看看