zoukankan      html  css  js  c++  java
  • sql server递归子节点、父节点,sql查询表结构,根据字段名查所在表

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

    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;

     五、根据字段名查询所在表

    SELECT  sys.objects.name ,
            sys.columns.NAME ,
            max_length ,
            create_date
    FROM    [数据库名].sys.columns
            INNER JOIN [数据库名].sys.objects ON sys.columns.object_id = sys.objects.object_id
    WHERE   type_desc = 'USER_TABLE'
            AND sys.columns.name = '字段名'
    作者:【Why Shang】
    出处:http://www.cnblogs.com/WhyShang/
    转载:欢迎转载,为了保存创作热情,转载请注明出处,谢谢!
  • 相关阅读:
    文件和网络
    设备支持
    用户界面概述
    介绍
    图形和描画
    应用程序偏好设置
    文本和Web
    人机界面准则:创建优秀的用户界面
    事件处理
    iPhone OS平台:丰富的可能性
  • 原文地址:https://www.cnblogs.com/WhyShang/p/6435080.html
Copyright © 2011-2022 走看看