各位用户为了找寻关于sql server递归子节点、父节点sql查询表结构的实例的资料费劲了很多周折。这里教程网为您整理了关于sql server递归子节点、父节点sql查询表结构的实例的相关资料,仅供查阅,以下为您介绍关于sql server递归子节点、父节点sql查询表结构的实例的详细内容
一、查询当前部门下的所有子部门
? 1 2 3 4 5 6 7 8 9 10 11WITH
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
二、查询当前部门所有上级部门
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24WITH
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
三、查询当前表的说明描述
? 1 2 3 4 5 6SELECT
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'
;
--表名
四、查询当前表的表结构(字段名、属性、默认值、说明等)
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42SELECT
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