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;

以上所述是小编给大家介绍的sql server递归子节点、父节点sql查询表结构的实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-09-23 17:36:14

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

SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件

原文:SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件 SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件 原文来自:http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/  August 23, 2008 by pinaldave 今天这篇文章我们来讨论dat

安装sql server 2008 management提示已安装 SQL Server 2005 Express的解

SQL Server 2005 Express 工具不是sql server 2005 management,不用卸载sql server 2005 management,用一个小技巧就行   安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 SQL Server 2005 Express 工具.若要继续,请删除 SQL Server 2005

安装sql server 2008 management提示已安装 SQL Server 2005 Express

  安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 SQL Server 2005 Express 工具.若要继续,请删除 SQL Server 2005 Express 工具.sql server 2005 management和sql server 2008 management不是兼容吗?为什么会有这样的提示? 答案是SQL Server

sql server 2008 r2-win7旗舰版安装sql server2008 R2时出现错误

问题描述 win7旗舰版安装sql server2008 R2时出现错误 win7旗舰版安装sql server2008 R2时,出现错误"MOF 编译器无法连接 WMI 服务器",详细如下,请帮忙诊断,谢谢! Overall summary: Final result: SQL Server 安装失败.若要继续操作,请调查失败原因,更正问题,卸载 SQL Server,然后重新运行 SQL Server 安装程序. Exit code (Decimal): -2068052377 E

SQL Server定时自动抓取耗时SQL并归档数据脚本分享

原文:SQL Server定时自动抓取耗时SQL并归档数据脚本分享 SQL Server定时自动抓取耗时SQL并归档数据脚本分享 第一步建库 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] GO 第二步创建sp_who3存储过程 -- http://sqlserverplanet.com/dba/a-better-sp_who2-using-dmvs-sp_who3 USE [MonitorElapsedHighSQL] GO CR

SQL Server中存储过程比直接运行SQL语句慢的原因

原文:SQL Server中存储过程比直接运行SQL语句慢的原因     在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1.       存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度. 2.       经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作.当对数据库进行复杂操作时(如对多个表进行 Upd

安装sql server 2008 management提示已安装 SQL Server 2005 Express的解决方法_MsSql

安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 SQL Server 2005 Express 工具.若要继续,请删除 SQL Server 2005 Express 工具.sql server 2005 management和sql server 2008 management不是兼容吗?为什么会有这样的提示? 答案是SQL Server 2

安装sql server 2008 management提示已安装 SQL Server 2005 Express的解决方法

安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 SQL Server 2005 Express 工具.若要继续,请删除 SQL Server 2005 Express 工具.sql server 2005 management和sql server 2008 management不是兼容吗?为什么会有这样的提示? 答案是SQL Server 2

迁移本地SQL Server数据库到Windows Azure的SQL Server中

Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure现在提供了IaaS的运行模式,可以直接跑windows的虚机和安装SQL Server数据库.这也是目前在云中数据库最佳的应用方式了.但是怎么样把你在本地SQL Server数据库到Windows Azure的SQL Server上面呢,我原来以为非常简单,但是试了一下还是碰到了很多问题.最后虽然成功,觉得还是有必要和大家分享一下具体的做法,下面是主要的步骤概括