查詢所有用戶表和表的結構

--查詢所有用戶表
SELECT  name
FROM    sysobjects
WHERE   xtype = 'U'

--查詢所有用戶表的表名、表結構、字段註釋
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 = '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
--where  D.NAME='sys_Area'   --查詢這個表
ORDER BY A.ID ,
        A.COLORDER


 

發佈了8 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章