讀取SQL Server 表結構

iSQlServer發表於2009-02-25
 SELECT     
  表名
=case   when   a.colorder=1   then   d.name   else   ''   end,     
  欄位序號
=a.colorder,     
  欄位名
=a.name,     
  標識
=case   when   COLUMNPROPERTY(   a.id,a.name,'IsIdentity')=1   then   ''else   ''   end,     
  主鍵
=case   when   exists(SELECT   1   FROM   sysobjects   where   xtype='PK'   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(COLUMNPROPERTY(a.id,a.name,'Scale'),0),     
  允許空
=case   when   a.isnullable=1   then   ''else   ''   end,     
  預設值
=isnull(e.text,''),     
  欄位說明
=isnull(g.[value],'')     
  
FROM   syscolumns   a     
  
left   join   systypes   b   on   a.xtype=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     
  
order   by   a.id,a.colorder 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-557811/,如需轉載,請註明出處,否則將追究法律責任。

相關文章