[SQL]Table Description

 

SQL Server 2005 生成表描述

写文章时常用

 

SELECT   
表名               
=   CASE   WHEN   A.COLORDER=1   THEN   D.NAME   ELSE   ' '   END
表说明           
=   CASE   WHEN   A.COLORDER=1   THEN   ISNULL(F.VALUE, ' ')   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   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(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.XUSERTYPE
=B.XUSERTYPE 
INNER   JOIN   
SYSOBJECTS   D   
ON   
A.ID
=D.ID     AND   D.XTYPE= ''   AND     D.NAME <> 'DTPROPERTIES ' 
LEFT   JOIN   
SYSCOMMENTS   E   
ON   
A.CDEFAULT
=E.ID 
LEFT   JOIN   
sys.extended_properties   G   
ON   
A.ID
=G.major_id   AND   A.COLID=G.minor_id     
LEFT   JOIN   
sys.extended_properties   F   
ON   
D.ID
=F.major_id   AND   F.minor_id=0 
ORDER   BY   
A.ID,A.COLORDER 

 

 

posted on 2010-11-29 23:54  徐中  阅读(1430)  评论(0编辑  收藏  举报

导航