神剑山庄资源网 Design By www.hcban.com

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

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查询表结构的实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

标签:
sql,递归查询节点,sql,递归查询父节点

神剑山庄资源网 Design By www.hcban.com
神剑山庄资源网 免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
神剑山庄资源网 Design By www.hcban.com

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

暂无sql server递归子节点、父节点sql查询表结构的实例的评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。