SQL Server 输出表结构

SELECT  
    TableName               =   CASE WHEN A.COLORDER=1 THEN D.NAME ELSE ' ' END, 
    TableDescription        =   CASE WHEN A.COLORDER=1 THEN ISNULL(F.VALUE, ' ') ELSE   ' '   END, 
    [ColumnSort]            =   A.COLORDER, 
    FieldName                =   A.NAME, 
    IsIdentity                =   CASE   WHEN   COLUMNPROPERTY(   A.ID,A.NAME, 'ISIDENTITY ')=1   THEN   '√?'ELSE   ' '   END, 
    IsPrimaryKey            =   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, 
    DataType               =   B.NAME, 
    [SetLength]               =   A.LENGTH, 
    [DataLength]           =   COLUMNPROPERTY(A.ID,A.NAME, 'PRECISION '), 
    [DecimalDigit]           =   ISNULL(COLUMNPROPERTY(A.ID,A.NAME, 'SCALE '),0), 
    [IsNull]               =   CASE   WHEN   A.ISNULLABLE=1   THEN   '√?'ELSE   ' '   END, 
    [DefaultValue]         =   ISNULL(E.TEXT, ' '), 
    [ColumnDescription]       =   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= 'U ' 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 @ 2009-10-26 11:24  Sissynong  阅读(295)  评论(0编辑  收藏  举报