• 获取SQLSERVER所有库 所有表 所有列 所有字段信息


    最近想起来做一个项目代码生成器,直接生成底层代码..

    这免不了要先行读取数据库已有的信息..

    废话不多说..开整..

    SELECT NAME FROM MASTER..SYSDATABASES  --读取所有库

    上边语句只得到单表单列..里边就全是数据库的名字..

    然后选择数据库后..按此数据库连接重新链接数据库..执行以下语句

    SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'  --读取所有表

    上边语句依然是得到的单表单列,存储的值全不是当前选择的数据库中的表


    用户选择..得到表名..

    SELECT CAST(value AS nvarchar(200)) as tableDescription FROM fn_listextendedproperty ('MS_Description', 'user', 'dbo', 'table', '写入表名', default, default)

    可以使用上述语句来获取表的扩展属性表说明字段  譬如   "用户表"  

    结合之后得到以下语句..可以直接把表名和表说明一起读出

    SELECT NAME,(SELECT CAST(value AS nvarchar(200)) as tableDescription FROM fn_listextendedproperty ('MS_Description', 'user', 'dbo', 'table', SO.NAME, default, default)) FROM SYSOBJECTS AS SO WHERE TYPE='U' 
    Select 
    SCOL.NAME,                    --列名
    SCOL.ISNULLABLE,            --是否为NULL
    SCOL.PREC,                    --长度
    STYPE.NAME AS [TYPE] ,        --字段数据类型
    (SELECT SYS.EXTENDED_PROPERTIES.VALUE FROM SYSCOLUMNS   
    INNER JOIN SYS.EXTENDED_PROPERTIES ON SYSCOLUMNS.ID = SYS.EXTENDED_PROPERTIES.MAJOR_ID   
    AND SYSCOLUMNS.COLID = SYS.EXTENDED_PROPERTIES.MINOR_ID   
    INNER JOIN SYSOBJECTS ON SYSCOLUMNS.ID = SYSOBJECTS.ID   
    WHERE SYSOBJECTS.NAME = SO.NAME AND SYSCOLUMNS.NAME = SCOL.NAME) AS NOTES   --字段说明文字
    
    from SYSCOLUMNS AS SCOL
    LEFT JOIN SYSOBJECTS SO ON SO.ID=SCOL.ID 
    LEFT JOIN SYSTYPES AS STYPE ON STYPE.xtype=SCOL.xtype
    Where 
    SCOL.ID=OBJECT_ID('写入表名')
    AND STYPE.NAME<>'SYSNAME'   --最后这个我也没搞明白  是自己加上的  有时候同一个字段会出来两行数据 其中一个是sysname

      

    上边的语句是自己写的..自己测试结果是正确的..如有不对..请多多指正批评

    在语句中只要在最后写入表名..即可得到一张四列的表..分别是 字段名/字段类型/是否为空/备注

    这四个东西基本上就是生成代码的最重要四个元素了..缺一不可..

    加注:

    SELECT objname,CAST(value AS nvarchar(200)) as fieldDescription FROM fn_listextendedproperty ('MS_Description', 'user', 'dbo', 'table', '写入表名' , 'column', default)

    也可以用上述语句来单独获取表中的字段说明

    在之后就是循环就好了..循环生成读模板..绑数据..写文件

  • 相关阅读:
    学生信息录入系统
    作业11(增删改查listview)
    作业10(qq增删改查)
    作业9
    作业8
    作业7
    右键打开Windows Terminal
    axure 动态面板中滚动条
    TortoiseSVN服务端的配置与使用
    hfs使用小技巧
  • 原文地址:https://www.cnblogs.com/iiwen/p/4683439.html
Copyright © 2020-2023  润新知