sql server递归子节点、父节点sql查询表结构的实例

作者:WhyShang 时间:2024-01-24 07:39:55 

一、查询当前部门下的所有子部门


WITH  dept
   AS ( SELECT  *
       FROM   dbo.deptTab --部门表
       WHERE  pid = @id
       UNION ALL
       SELECT  d.*
       FROM   dbo.deptTab d
           INNER JOIN dept ON d.pid = dept.id
      )
 SELECT *
 FROM  dept

二、查询当前部门所有上级部门


WITH  tab
    AS ( SELECT  DepId ,
           ParentId ,
           DepName ,
           [Enable] ,
           0 AS [Level]
       FROM   deptTab WITH ( NOLOCK ) --表名
       WHERE  [Enable] = 1
           AND depId = @depId
       UNION ALL
       SELECT  b.DepId ,
           b.ParentId ,
           b.DepName ,
           b.[Enable] ,
           a.[Level] + 1
       FROM   tab a ,
           deptTab b WITH ( NOLOCK )
       WHERE  a.ParentId = b.depId
           AND b.[enable] = 1
      )
 SELECT *
 FROM  tab WITH ( NOLOCK )
 WHERE  [enable] = 1
 ORDER BY [level] DESC

三、查询当前表的说明描述


SELECT tbs.name 表名 ,
   ds.value 描述
FROM  sys.extended_properties ds
   LEFT JOIN sysobjects tbs ON ds.major_id = tbs.id
WHERE  ds.minor_id = 0
   AND tbs.name = 'userTab';--表名

四、查询当前表的表结构(字段名、属性、默认值、说明等)


SELECT CASE WHEN col.colorder = 1 THEN obj.name
      ELSE ''
   END AS 表名 ,
   col.colorder AS 序号 ,
   col.name AS 列名 ,
   ISNULL(ep.[value], '') AS 列说明 ,
   t.name AS 数据类型 ,
   col.length AS 长度 ,
   ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0) AS 小数位数 ,
   CASE WHEN COLUMNPROPERTY(col.id, col.name, 'IsIdentity') = 1 THEN '√'
      ELSE ''
   END AS 标识 ,
   CASE WHEN EXISTS ( SELECT  1
             FROM   dbo.sysindexes si
                 INNER JOIN dbo.sysindexkeys sik ON si.id = sik.id
                              AND si.indid = sik.indid
                 INNER JOIN dbo.syscolumns sc ON sc.id = sik.id
                              AND sc.colid = sik.colid
                 INNER JOIN dbo.sysobjects so ON so.name = si.name
                              AND so.xtype = 'PK'
             WHERE  sc.id = col.id
                 AND sc.colid = col.colid ) THEN '√'
      ELSE ''
   END AS 主键 ,
   CASE WHEN col.isnullable = 1 THEN '√'
      ELSE ''
   END AS 允许空 ,
   ISNULL(comm.text, '') AS 默认值
FROM  dbo.syscolumns col
   LEFT JOIN dbo.systypes t ON col.xtype = t.xusertype
   INNER JOIN dbo.sysobjects obj ON col.id = obj.id
                    AND obj.xtype = 'U'
                    AND obj.status >= 0
   LEFT JOIN dbo.syscomments comm ON col.cdefault = comm.id
   LEFT JOIN sys.extended_properties ep ON col.id = ep.major_id
                        AND col.colid = ep.minor_id
                        AND ep.name = 'MS_Description'
   LEFT JOIN sys.extended_properties epTwo ON obj.id = epTwo.major_id
                         AND epTwo.minor_id = 0
                         AND epTwo.name = 'MS_Description'
WHERE  obj.name = 'userTab'--表名(点此修改)
ORDER BY col.colorder;

以上所述是小编给大家介绍的sql server递归子节点、父节点sql查询表结构的实例网站的支持!

来源:http://www.cnblogs.com/WhyShang/archive/2017/02/23/6435080.html

标签:sql,递归查询,节点
0
投稿

猜你喜欢

  • 在Linux下搭建Git服务器的方法详解

    2022-02-05 16:35:10
  • MySQL数据库中的各种乱码及其解决方法

    2008-12-17 16:29:00
  • SQL执行步骤的具体分析

    2024-01-17 15:47:54
  • python 可视化库PyG2Plot的使用

    2022-10-14 05:22:17
  • python-docx修改已存在的Word文档的表格的字体格式方法

    2021-07-20 05:03:07
  • Python字符串拼接的4种方法实例

    2023-01-30 18:57:15
  • 基于Go和PHP语言实现爬楼梯算法的思路详解

    2024-05-22 10:18:20
  • Python识别快递条形码及Tesseract-OCR使用详解

    2022-10-20 01:32:32
  • pygame库实现俄罗斯方块小游戏

    2022-09-11 10:43:37
  • python 使用值来排序一个字典的方法

    2022-02-05 00:25:05
  • 利用Python的Django框架中的ORM建立查询API

    2023-11-15 10:06:03
  • oracle12C安装步骤(图文详解)

    2023-07-15 14:19:34
  • Vue配置文件vue.config.js配置前端代理方式

    2023-07-02 16:39:06
  • win10下oracle 11g安装图文教程

    2024-01-25 06:18:17
  • MAC下Mysql5.7.10版本修改root密码的方法

    2024-01-27 00:05:58
  • python检测服务器是否正常

    2022-06-18 05:10:19
  • MySQL获取当前时间的多种方式总结

    2024-01-21 02:29:34
  • 关于Python形参打包与解包小技巧分享

    2021-06-08 21:43:39
  • MSSQL基本语法及实例操作语句

    2024-01-28 06:45:16
  • tensorflow实现对图片的读取的示例代码

    2023-07-20 06:07:30
  • asp之家 网络编程 m.aspxhome.com