查询sql2005&2008全部表信息

 1 如果是查询sql server 2000,把sys.extended_properties修改为SysProperties
 2 
 3 SELECT 
 4 表名       = CASE WHEN A.COLORDER=1 THEN D.NAME ELSE ‘‘ END,
 5 表说明     = CASE WHEN A.COLORDER=1 THEN ISNULL(F.VALUE,‘‘) ELSE ‘‘ END,
 6 列序号   = A.COLORDER,
 7 列名     = A.NAME,
 8 标识       = CASE WHEN COLUMNPROPERTY( A.ID,A.NAME,ISIDENTITY)=1 THEN ELSE ‘‘ END,
 9 主鍵       = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE=PK AND PARENT_OBJ=A.ID AND NAME IN (
10 SELECT NAME FROM SYSINDEXES WHERE INDID IN(
11 SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN  ELSE ‘‘ END,
12 类型       = B.NAME,
13 字节数 = A.LENGTH,
14 长度       = COLUMNPROPERTY(A.ID,A.NAME,PRECISION),
15 小数位数   = ISNULL(COLUMNPROPERTY(A.ID,A.NAME,SCALE),0),
16 允许空     = CASE WHEN A.ISNULLABLE=1 THEN ELSE ‘‘ END,
17 默认值     = ISNULL(E.TEXT,‘‘),
18 字段说明   = ISNULL(G.[VALUE],‘‘)
19 FROM 
20 SYSCOLUMNS A
21 LEFT JOIN 
22 SYSTYPES B 
23 ON 
24 A.XUSERTYPE=B.XUSERTYPE
25 INNER JOIN 
26 SYSOBJECTS D 
27 ON 
28 A.ID=D.ID  AND D.XTYPE=U AND  D.NAME<>DTPROPERTIES
29 LEFT JOIN 
30 SYSCOMMENTS E 
31 ON 
32 A.CDEFAULT=E.ID
33 LEFT JOIN 
34 sys.extended_properties G 
35 ON 
36 A.ID=G.major_id AND A.COLID=G.minor_id  
37 LEFT JOIN 
38 sys.extended_properties F 
39 ON 
40 D.ID=F.major_id AND F.minor_id=0
41 ORDER BY 
42 A.ID,A.COLORDER

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。