1. SELECT TOP 100 PERCENT --a.id,
    2. CASE
    3. WHEN a.colorder = 1 THEN d.NAME
    4. ELSE ''
    5. END AS 表名,
    6. CASE
    7. WHEN a.colorder = 1 THEN Isnull(f.value, '')
    8. ELSE ''
    9. END AS 表说明,
    10. a.colorder AS 字段序号,
    11. a.NAME AS 字段名,
    12. CASE
    13. WHEN Columnproperty(a.id, a.NAME, 'IsIdentity') = 1 THEN '√'
    14. ELSE ''
    15. END AS 标识,
    16. CASE
    17. WHEN EXISTS (SELECT 1
    18. FROM dbo.sysindexes si
    19. INNER JOIN dbo.sysindexkeys sik
    20. ON si.id = sik.id
    21. AND si.indid = sik.indid
    22. INNER JOIN dbo.syscolumns sc
    23. ON sc.id = sik.id
    24. AND sc.colid = sik.colid
    25. INNER JOIN dbo.sysobjects so
    26. ON so.NAME = si.NAME
    27. AND so.xtype = 'PK'
    28. WHERE sc.id = a.id
    29. AND sc.colid = a.colid) THEN '√'
    30. ELSE ''
    31. END AS 主键,
    32. b.NAME AS 类型,
    33. a.length AS 长度,
    34. Columnproperty(a.id, a.NAME, 'PRECISION') AS 精度,
    35. Isnull(Columnproperty(a.id, a.NAME, 'Scale'), 0) AS 小数位数,
    36. CASE
    37. WHEN a.isnullable = 1 THEN '√'
    38. ELSE ''
    39. END AS 允许空,
    40. Isnull(e.text, '') AS 默认值,
    41. Isnull(g.[value], '') AS 字段说明,
    42. d.crdate AS 创建时间,
    43. CASE
    44. WHEN a.colorder = 1 THEN d.refdate
    45. ELSE NULL
    46. END AS 更改时间
    47. FROM dbo.syscolumns a
    48. LEFT OUTER JOIN dbo.systypes b
    49. ON a.xtype = b.xusertype
    50. INNER JOIN dbo.sysobjects d
    51. ON a.id = d.id
    52. AND d.xtype = 'U'
    53. AND d.status >= 0
    54. LEFT OUTER JOIN dbo.syscomments e
    55. ON a.cdefault = e.id
    56. LEFT OUTER JOIN sys.extended_properties g
    57. ON a.id = g.major_id
    58. AND a.colid = g.minor_id
    59. AND g.NAME = 'MS_Description'
    60. LEFT OUTER JOIN sys.extended_properties f
    61. ON d.id = f.major_id
    62. AND f.minor_id = 0
    63. AND f.NAME = 'MS_Description'
    64. ORDER BY d.NAME,
    65. 字段序号