SQL Server 根据表名获取表的所有列及属性


实例一:             

select a.name columnname,c.name as typename,case when a.is_nullable =then 'Not Nullelse 'Nullend as nullable,a.*
from sys.columns a , sys.objects b, sys.types c 
where a.object_id= b.object_id and b.name='表名and a.system_type_id=c.system_type_id order by a.column_id

实例二:

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 , 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 ( ' 表名 ' )

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM