加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer表结构查询

发布时间:2020-12-12 14:19:51 所属栏目:MsSql教程 来源:网络整理
导读:Mysql数据库查询表结构很方便,用客户端(SQLyog)可以直接复制出需要的表结构,据说可以用简单的命令查询表结构 desc 表结构 Sqlserver导出表结构就很坑爹了,首先呢客户端不支持,表设计页面虽说可以复制表结构但是不包含字段注释,想想这种场景应该很常见

Mysql数据库查询表结构很方便,用客户端(SQLyog)可以直接复制出需要的表结构,据说可以用简单的命令查询表结构 desc 表结构

Sqlserver导出表结构就很坑爹了,首先呢客户端不支持,表设计页面虽说可以复制表结构但是不包含字段注释,想想这种场景应该很常见不可能没有解决方案的,于是在网上发现了一段脚本,稍加调整就可以查询出需要的表结构

脚本及查询示例

SELECT  表名 = CASE WHEN a.colorder = 1 THEN d.name ELSE ‘‘ END,字段说明 = ISNULL(g.[value],‘‘),字段名 = a.name,类型 = CASE WHEN b.name IN ( varchar,nvarchar )
                  THEN b.name + (
                       + CAST(COLUMNPROPERTY(a.id,a.name,PRECISION) AS VARCHAR(4))
                       + )
                  WHEN b.name = decimal
                  THEN b.name + (
                       + CAST(COLUMNPROPERTY(a.id,PRECISION) AS VARCHAR(4))
                       + ,
                       + CAST(COLUMNPROPERTY(a.id,Scale) AS VARCHAR(4))
                       + )
                  ELSE b.name
             END
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 = SCM_Module    --可修改表名
ORDER BY a.id,a.colorder

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读