zoukankan      html  css  js  c++  java
  • sql批量生成showdocs数据字典的md文档

    -- sql批量生成showdocs数据字典的md文档
    --批量获取表备注
    
    -- 表名,替换成需要的表名
    DECLARE @TableList TABLE (ID INT IDENTITY(1,1), TableName NVARCHAR(256))
    INSERT INTO @TableList(TableName)VALUES
    ('CompanyCertifyDatas'),
    ('CompanyXCXRegistrationDatas'),
    ('CompanyXCXRegistrationTracks'),
    ('CompanyXCXRegistrationWeixinLogs'),
    ('WeixinOpenReturnCodes')
    
    CREATE TABLE #FieldDescripts
    (
        FieldName NVARCHAR(MAX),
        PrimaryKey NVARCHAR(MAX),
        DataType NVARCHAR(MAX),
        FieldLength NVARCHAR(MAX),
        NeedNull NVARCHAR(MAX),
        DefaultValue NVARCHAR(MAX),
        Description NVARCHAR(MAX)
    )
    
    DECLARE @Count INT=(SELECT COUNT(1) FROM @TableList)
    DECLARE @ID INT=1
    WHILE @ID<=@Count
    BEGIN
        DECLARE @TableName NVARCHAR(MAX)=(SELECT TableName FROM @TableList WHERE ID=@ID)
    
        DECLARE @TableDescription NVARCHAR(MAX)
        SELECT TOP(1) @TableDescription=ISNULL(CONVERT(NVARCHAR(MAX),g.[value]),'')
        FROM sys.tables a left join sys.extended_properties g ON (a.object_id = g.major_id AND g.minor_id = 0)
        WHERE a.name=@TableName
    
    	INSERT INTO #FieldDescripts VALUES('# '+@TableName,'','','','','','')
    	INSERT INTO #FieldDescripts VALUES('- ' + @TableDescription,'','','','','','')
    	INSERT INTO #FieldDescripts VALUES('','','','','','','')
        INSERT INTO #FieldDescripts VALUES('|字段名','|主键','| 类型','| 长度','| 允许空','| 默认值','| 字段说明|')
        INSERT INTO #FieldDescripts VALUES('|:-------','|:-------','|:-------','|:-------','|:-------','|:-------','|:-------|')
        INSERT INTO #FieldDescripts
        SELECT 
            字段名     = '|' + a.name , 
            主键       = '|' + 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,
            长度       = '|' + CONVERT(NVARCHAR(MAX),COLUMNPROPERTY(a.id,a.name,'PRECISION')),
            允许空     = '|' + case when a.isnullable=1 then '√' else '×' end,
            默认值     = '|' + ISNULL(e.text,''),
            字段说明   = '|' + CONVERT(NVARCHAR(MAX),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=@TableName
        ORDER BY a.id,a.colorder
        INSERT INTO #FieldDescripts VALUES('','','','','','','')
    	INSERT INTO #FieldDescripts VALUES('','','','','','','')
        SET @ID=@ID+1
    END 
    SELECT * FROM #FieldDescripts 
    DROP TABLE #FieldDescripts
    



  • 相关阅读:
    奢想下财务自由吧--理想生活啊
    [翻译] AGG 之贝塞尔插值
    Beginning Silverlight 4 in C#Welcome to Silverlight 4[学习笔记]
    从属性赋值到MVVM模式详解
    Beginning Silverlight 4 in C#Silverlight的布局管理学习笔记
    Beginning Silverlight 4 in C#Silverlight工具包
    不用IDE写C#的Hello World
    NHibernate使用无状态Sessions
    Beginning Silverlight 4 in C#Silverlight控件
    NHibernate使用session.Merge[翻译]
  • 原文地址:https://www.cnblogs.com/microsoft-zyl/p/14082097.html
Copyright © 2011-2022 走看看