1. 程式人生 > >列出MSSQL資料庫中的表和欄位內容

列出MSSQL資料庫中的表和欄位內容

CREATE PROCEDURE [dbo].[List_Field] AS
SELECT    
  表名=d.name, --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

GO