zoukankan      html  css  js  c++  java
  • sqlserver 查询 字段

    SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='MenuInfo' 
    
    select * from sysobjects where name='MenuInfo' --查询所有表
    select * from sysobjects where 1=1  AND  xtype='U' --查询用户创建所有表
    select * from syscolumns where  1=1 AND id='565577053'   --查询 指定id(也就是表)下的所有列名
    select *  from systypes where 1=1  AND status=0 AND xtype ='231'  --查询 系统类型表
    select t1.name,t1.id as t1id, t4.id as t4id from(
            select name,id,colid,xtype  FROM SYSCOLUMNS   where 1=1  
            AND id=(select id from sysobjects where 1=1  AND  xtype='U'  AND name='MenuInfo')
            AND (name='MenuName' or name='Id')
        )t1
        left join
        (
            select id,colid from SYSINDEXKEYS   --sys index keys   系统主键表
            where 1=1 and  id ='565577053'  --这个id 是表名id; 用户所创建的表中的id,
            -- 查询 出的数据 是 
            /*
                --sysindexkeys
                id             colid
                565577053     2           //这个colid=2 表示 这个是主键
    
                --syscolums             系统所有列的数据信息
                name            id        colid    xtype
                MenuName    565577053    1        231
                Id            565577053    2        56
            */
        )t4 
        on
        t4.id = t1.id
        and
        t1.colid = t4.colid 
              select name,id,colid,xtype, case when COLUMNPROPERTY(id,name,'IsIdentity') = 1 then 'true' else 'false' end as  自增 FROM SYSCOLUMNS   where 1=1  
            AND id=(select id from sysobjects where 1=1  AND  xtype='U'  AND name='MenuInfo')
            AND (name='MenuName' or name='Id')

              select name,id,colid,xtype,  COLUMNPROPERTY(id,name,'IsIdentity') as  自增 FROM SYSCOLUMNS   where 1=1  
            AND id=(select id from sysobjects where 1=1  AND  xtype='U'  AND name='MenuInfo')
            AND (name='MenuName' or name='Id')

     --转自 

    https://blog.csdn.net/xiaozaq/article/details/58584970

    //加以修改 

    -------------最终版
            select t1.name,t3.name,t1.[length],t1.isnullable,t2.id as 主键,COLUMNPROPERTY(t1.id,t1.name,'IsIdentity') as  自增  from(
                select name,id,colid,xtype,[length],isnullable  FROM SYSCOLUMNS   where 1=1  
                AND id=(select id from sysobjects where 1=1  AND  xtype='U'  AND name='MenuInfo')
            )t1
            left join
            (
                select id,colid from SYSINDEXKEYS   --sys index keys   系统主键表
            )t2 
            on
            t2.id = t1.id
            and t1.colid = t2.colid 
            left join
            (
                select name,xtype  from systypes where 1=1  AND status=0   --AND xtype ='231'
            )t3
            on
            t1.xtype = t3.xtype
    select
         c.name as [字段名],t.name as [字段类型]
         ,convert(bit,c.IsNullable)  as [可否为空]
         ,convert(bit,case when exists(select 1 from sysobjects where xtype='PK' and parent_obj=c.id and name in (
             select name from sysindexes where indid in(
                 select indid from sysindexkeys where id = c.id and colid=c.colid))) then 1 else 0 end) 
                     as [是否主键]
        ,convert(bit,case when exists(select 1 from syscolumns col,sysforeignkeys f 
        where f.fkeyid=col.id and col.name=c.name and f.fkey=col.colid and f.constid in ( 
        select distinct(id)    from sysobjects   where OBJECT_NAME(parent_obj)='User' and xtype='F'
        )) then 1 else 0 end)  as [是否外键]
         ,convert(bit,COLUMNPROPERTY(c.id,c.name,'IsIdentity')) as [自动增长]
         ,c.Length as [占用字节] 
         ,COLUMNPROPERTY(c.id,c.name,'PRECISION') as [长度]
         ,isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as [小数位数]
         ,ISNULL(CM.text,'') as [默认值]
         ,isnull(ETP.value,'') AS [字段描述]
         --,ROW_NUMBER() OVER (ORDER BY C.name) AS [Row]
    from syscolumns c
    inner join systypes t on c.xusertype = t.xusertype 
    left join sys.extended_properties ETP on ETP.major_id = c.id and ETP.minor_id = c.colid and ETP.name ='MS_Description' 
    left join syscomments CM on c.cdefault=CM.id
    where c.id = object_id('MenuInfo')

     --

    select * from sys.columns where object_id=object_id('MenuInfo')

    --查询注释

    select 
    a.name as table_name, 
    b.name as column_name, 
    c.value as remarks   
    from sys.tables a left join sys.columns b on a.object_id=b.object_id  
        left join sys.extended_properties c on a.object_id=c.major_id  
        where a.name='db_table5' and c.minor_id<>0 and b.column_id=c.minor_id  
        and a.schema_id=(  
            select schema_id from sys.schemas where name='dbo'  
        )
    --查询注释所需要的表
    select * from sys.tables 
    select * from sys.columns
    select * from sys.extended_properties  --备注
    select * from sys.schemas
    ---其他表
    select * from sysobjects  
    select * from syscolumns
    SELECT * FROM INFORMATION_SCHEMA.columns
    select * FROM SYSINDEXKEYS
    select * FROM systypes

    ---

    --查看表的所有字段注释
    use FileManageDB;
    SELECT [ColumnName] = [Columns].name ,
            [Description] = [Properties].value,
            [SystemTypeName] = [Types].name ,
            [Precision] = [Columns].precision ,
            [Scale] = [Columns].scale ,
            [MaxLength] = [Columns].max_length ,
            [IsNullable] = [Columns].is_nullable ,
            [IsRowGUIDCol] = [Columns].is_rowguidcol ,
            [IsIdentity] = [Columns].is_identity ,
            [IsComputed] = [Columns].is_computed ,
            [IsXmlDocument] = [Columns].is_xml_document 
    FROM    sys.tables AS [Tables]
            INNER JOIN sys.columns AS [Columns] ON [Tables].object_id = [Columns].object_id
            INNER JOIN sys.types AS [Types] ON [Columns].system_type_id = [Types].system_type_id
                                               AND is_user_defined = 0
                                               AND [Types].name <> 'sysname'
            LEFT OUTER JOIN sys.extended_properties AS [Properties] ON [Properties].major_id = [Tables].object_id
                                                                  AND [Properties].minor_id = [Columns].column_id
                                                                  AND [Properties].name = 'MS_Description'
    WHERE   [Tables].name ='T_Logs' -- and [Columns].name = '字段名'
    ORDER BY [Columns].column_id

     ----

    --增加字段注释
    EXEC sp_addextendedproperty 
    'MS_Description', '性别123',
     
     'user', dbo, 'table',T_Logs,  --表名 
      'column', LogType; --列名
    
    
    ---更新字段注释
    EXEC sp_updateextendedproperty 'MS_Description',
     
    '性别3',
    
     'user', dbo, 'table',T_Logs,  --表名 
      'column', LogType; --列名
  • 相关阅读:
    ci高级使用方法篇之连接多个数据库
    JavaSE入门学习17:Java面向对象之package(包)
    找出字符串中第一个出现次数最多的字符
    red5源代码编译并打包公布
    J.U.C--locks--AQS分析
    Spring Web MVC 原理学习(下)
    深入理解 Linux 内存管理
    Java面试问题总结
    盗版者的失落
    eclipse配置lombok插件
  • 原文地址:https://www.cnblogs.com/enych/p/11904194.html
Copyright © 2011-2022 走看看