SQLServer 获得所有表结构(包括表名及字段)
时间:2021-07-01 10:21:17
帮助过:2人阅读
SELECT (
case when a.colorder
=1 then d.name
else null end) 表名,
2 a.colorder 字段序号,a.name 字段名,
3 (
case when COLUMNPROPERTY( a.id,a.name,
‘IsIdentity‘)
=1 then ‘√‘else ‘‘ end) 标识,
4 (
case when (
SELECT count(
*)
FROM sysobjects
5 WHERE (name
in (
SELECT name
FROM sysindexes
6 WHERE (id
= a.id)
AND (indid
in
7 (
SELECT indid
FROM sysindexkeys
8 WHERE (id
= a.id)
AND (colid
in
9 (
SELECT colid
FROM syscolumns
WHERE (id
= a.id)
AND (name
= a.name)))))))
10 AND (xtype
= ‘PK‘))
>0 then ‘√‘ else ‘‘ end) 主键,b.name 类型,a.length 占用字节数,
11 COLUMNPROPERTY(a.id,a.name,
‘PRECISION‘)
as 长度,
12 isnull(
COLUMNPROPERTY(a.id,a.name,
‘Scale‘),
0)
as 小数位数,(
case when a.isnullable
=1 then ‘√‘else ‘‘ end) 允许空,
13 isnull(e.
text,
‘‘) 默认值,
isnull(g.
[value],
‘ ‘)
AS [说明]
14 FROM syscolumns a
15 left join systypes b
on a.xtype
=b.xusertype
16 inner join sysobjects d
on a.id
=d.id
and d.xtype
=‘U‘ and d.name
<>‘dtproperties‘
17 left join syscomments e
on a.cdefault
=e.id
18 left join sys.extended_properties g
on a.id
=g.major_id
AND a.colid
=g.minor_id
19 left join sys.extended_properties f
on d.id
=f.class
and f.minor_id
=0
20 where b.name
is not null
21 --WHERE d.name=‘要查询的表‘ --如果只查询指定表,加上此条件
22 order by a.id,a.colorder
获得所有数据库表名:
SELECT name FROM SysObjects Where XType=‘U‘ ORDER BY Name
SQLServer 获得所有表结构(包括表名及字段)
标签: