SQLServer数据字典的HTML格式

以下的文章主要是介绍SQL Server数据字典的HTML格式,SQL Server数据字典的HTML格在实际中的应用比例还是占为多数的,如果你对这一技术,心存好奇的话,以下的文章将会揭开它的神秘面纱。

运行下面的脚本来生成数据字典,并保存结果到一个扩展名为“.htm”的文件中。

生成数据字典的示例T-SQL脚本

 
 
 
  1. Set nocount on   
  2. DECLARE @TableName nvarchar(35)   
  3. DECLARE Tbls CURSOR   
  4. FOR   
  5. Select distinct Table_name   
  6. FROM INFORMATION_SCHEMA.COLUMNS   
  7. --put any exclusions here   
  8. --where table_name not like '%old'   
  9. order by Table_name   
  10. OPEN Tbls   
  11. PRINT ''   
  12. FETCH NEXT FROM Tbls   
  13. INTO @TableName   
  14. WHILE @@FETCH_STATUS = 0   
  15. BEGIN   
  16. PRINT '
    '   
  17. PRINT ''   
  18. Print '' + @TableName + ''   
  19. PRINT '
    '   
  20. --Get the Description of the table   
  21. --Characters 1-250   
  22. Select substring(cast(Value as varchar(1000)),1,250) FROM   
  23. sys.extended_properties A   
  24. WHERE A.major_id = OBJECT_ID(@TableName)   
  25. and name = 'MS_Description' and minor_id = 0   
  26. --Characters 251-500   
  27. Select substring(cast(Value as varchar(1000)),251, 250) FROM   
  28. sys.extended_properties A   
  29. WHERE A.major_id = OBJECT_ID(@TableName)   
  30. and name = 'MS_Description' and minor_id = 0   
  31. PRINT ''   
  32. --Set up the Column Headers for the Table   
  33. PRINT 'Column Name'   
  34. PRINT 'Description'   
  35. PRINT 'InPrimaryKey'   
  36. PRINT 'IsForeignKey'   
  37. PRINT 'DataType'   
  38. PRINT 'Length'   
  39. PRINT 'Numeric Precision'   
  40. PRINT 'Numeric Scale'   
  41. PRINT 'Nullable'   
  42. PRINT 'Computed'   
  43. PRINT 'Identity'   
  44. PRINT 'Default Value'   
  45. --Get the Table Data   
  46. SELECT '',   
  47. '',   
  48. '' + CAST(clmns.name AS VARCHAR(35)) + '',   
  49. '' + substring(ISNULL(CAST(exprop.value AS VARCHAR(255)),''),1,250),   
  50. substring(ISNULL(CAST(exprop.value AS VARCHAR(500)),''),251,250) + '',   
  51. '' + CAST(ISNULL(idxcol.index_column_id, 0)AS VARCHAR(20)) + '',   
  52. '' + CAST(ISNULL(   
  53. (SELECT TOP 1 1   
  54. FROM sys.foreign_key_columns AS fkclmn   
  55. WHERE fkclmn.parent_column_id = clmns.column_id   
  56. AND fkclmn.parent_object_id = clmns.object_id   
  57. ), 0) AS VARCHAR(20)) + '',   
  58. '' + CAST(udt.name AS CHAR(15)) + '' ,   
  59. '' + CAST(CAST(CASE WHEN typ.name IN (N'nchar', N'nvarchar') AND clmns.max_length <> -1   
  60. THEN clmns.max_length/2   
  61. ELSE clmns.max_length END AS INT) AS VARCHAR(20)) + '',   
  62. '' + CAST(CAST(clmns.precision AS INT) AS VARCHAR(20)) + '',   
  63. '' + CAST(CAST(clmns.scale AS INT) AS VARCHAR(20)) + '',   
  64. '' + CAST(clmns.is_nullable AS VARCHAR(20)) + '' ,   
  65. '' + CAST(clmns.is_computed AS VARCHAR(20)) + '' ,   
  66. '' + CAST(clmns.is_identity AS VARCHAR(20)) + '' ,   
  67. '' + isnull(CAST(cnstr.definition AS VARCHAR(20)),'') + ''   
  68. FROM sys.tables AS tbl   
  69. INNER JOIN sys.all_columns AS clmns   
  70. ON clmns.object_id=tbl.object_id   
  71. LEFT OUTER JOIN sys.indexes AS idx   
  72. ON idx.object_id = clmns.object_id   
  73. AND 1 =idx.is_primary_key   
  74. LEFT OUTER JOIN sys.index_columns AS idxcol   
  75. ON idxidxcol.index_id = idx.index_id   
  76. AND idxcol.column_id = clmns.column_id   
  77. AND idxcol.object_id = clmns.object_id   
  78. AND 0 = idxcol.is_included_column   
  79. LEFT OUTER JOIN sys.types AS udt   
  80. ON udt.user_type_id = clmns.user_type_id   
  81. LEFT OUTER JOIN sys.types AS typ   
  82. ON typ.user_type_id = clmns.system_type_id   
  83. AND typtyp.user_type_id = typ.system_type_id   
  84. LEFT JOIN sys.default_constraints AS cnstr   
  85. ON cnstr.object_id=clmns.default_object_id   
  86. LEFT OUTER JOIN sys.extended_properties exprop   
  87. ON exprop.major_id = clmns.object_id   
  88. AND exprop.minor_id = clmns.column_id   
  89. AND exprop.name = 'MS_Description'   
  90. WHERE (tbl.name = @TableName and   
  91. exprop.class = 1) --I don't wand to include comments on indexes   
  92. ORDER BY clmns.column_id ASC   
  93. PRINT ''   
  94. FETCH NEXT FROM Tbls   
  95. INTO @TableName   
  96. END   
  97. PRINT ''   
  98. CLOSE Tbls   
  99. DEALLOCATE Tbls   

 

这个脚本将被安排作为一个工作来运行,所以你不需要担心要手动更新文档。

因为你将文档存储在数据库中,所以你不必担心拥有多个拷贝并指出哪个是***的。它还会与数据库一起备份。

以上的相关内容就是对HTML格式的SQL Server数据字典 的介绍,望你能有所收获。

分享标题:SQLServer数据字典的HTML格式
网站链接:http://www.hantingmc.com/qtweb/news6/367256.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联