讀取數據字典

查看代碼

WITH cte AS(
SELECT   TOP (100) PERCENT CASE WHEN col.colorder = 1 THEN obj.name ELSE obj.name END AS 表名, col.colorder AS 序號, 

                col.name AS 列名, ISNULL(ep.value, N'') AS 列說明, t.name AS 數據類型, col.length AS 長度, 

                ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0) AS 小數位數, CASE WHEN COLUMNPROPERTY(col.id, 

                col.name, 'IsIdentity') = 1 THEN '√' ELSE '' END AS 標識, CASE WHEN EXISTS

                    (SELECT   1

                     FROM      dbo.sysindexes si INNER JOIN

                                     dbo.sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid INNER JOIN

                                     dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid INNER JOIN

                                     dbo.sysobjects so ON so.name = si.name AND so.xtype = 'PK'

                     WHERE   sc.id = col.id AND sc.colid = col.colid) THEN '√' ELSE '' END AS 主鍵, 

                CASE WHEN col.isnullable = 1 THEN '√' ELSE '' END AS 允許空, ISNULL(comm.text, N'') AS 默認值

FROM      dbo.syscolumns AS col LEFT OUTER JOIN

                dbo.systypes AS t ON col.xtype = t.xusertype INNER JOIN

                dbo.sysobjects AS obj ON col.id = obj.id AND obj.xtype = 'U' AND obj.status >= 0 LEFT OUTER JOIN

                dbo.syscomments AS comm ON col.cdefault = comm.id LEFT OUTER JOIN

                sys.extended_properties AS ep ON col.id = ep.major_id AND col.colid = ep.minor_id AND 

                ep.name = 'MS_Description' LEFT OUTER JOIN

                sys.extended_properties AS epTwo ON obj.id = epTwo.major_id AND epTwo.minor_id = 0 AND 

                epTwo.name = 'MS_Description'

ORDER BY obj.name, 序號)

SELECT * FROM cte t1
WHERE t1.表名='product'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章