SQLServer如何查看表结构呢?有同oracle的desc一样命令吗?

2024-12-01 23:23:20
推荐回答(5个)
回答1:

use Roy --数据库
go
--2005实现数据库表字段属性统计(2000里的系统表sysproperties描述表不存在,2005里用sys.extended_properties视图替代)
select
[表名]=c.Name,
[表说明]=isnull(f.[value],''),
[列名]=a.Name,
[列序号]=a.Column_id,
[标识]=case when is_identity=1 then '√' else '' end,
[主键]=case when exists(select 1 from sys.objects x join sys.indexes y on x.Type=N'PK' and x.Name=y.Name
join sysindexkeys z on z.ID=a.Object_id and z.indid=y.index_id and z.Colid=a.Column_id)
then '√' else '' end,
[类型]=b.Name,
[字节数]=case when a.[max_length]=-1 and b.Name!='xml' then 'max/2G'
when b.Name='xml' then '2^31-1字节/2G'
else rtrim(a.[max_length]) end,
[长度]=case when ColumnProperty(a.object_id,a.Name,'Precision')=-1 then '2^31-1'
else rtrim(ColumnProperty(a.object_id,a.Name,'Precision')) end,
[小数]=isnull(ColumnProperty(a.object_id,a.Name,'Scale'),0),
[是否为空]=case when a.is_nullable=1 then '√' else '' end,
[列说明]=isnull(e.[value],''),
[默认值]=isnull(d.text,'')
from
sys.columns a
left join
sys.types b on a.user_type_id=b.user_type_id
inner join
sys.objects c on a.object_id=c.object_id and c.Type='U'
left join
syscomments d on a.default_object_id=d.ID
left join
sys.extended_properties e on e.major_id=c.object_id and e.minor_id=a.Column_id and e.class=1
left join
sys.extended_properties f on f.major_id=c.object_id and f.minor_id=0 and f.class=1

回答2:

在SQL选中表按ALT+F1试试

回答3:

查看表的结构用:SP_MShelpcolumns'dbo.表名'

回答4:

名称
地址
说明

1
sysaltfiles
主数据库
保存数据库的文件

2
syscharsets
主数据库
字符集与排序顺序

3
sysconfigures
主数据库
配置选项

4
syscurconfigs
主数据库
当前配置选项

5
sysdatabases
主数据库
服务器中的数据库

6
syslanguages
主数据库
语言

7
syslogins
主数据库
登陆帐号信息

8
sysoledbusers
主数据库
连接服务器登陆信息

9
sysprocesses
主数据库
进程

10
sysremotelogins
主数据库
远程登录帐号

11
syscolumns
每个数据库


12
sysconstrains
每个数据库
限制

13
sysfilegroups
每个数据库
文件组

14
sysfiles
每个数据库
文件

15
sysforeignkeys
每个数据库
外部关键字

16
sysindexs
每个数据库
索引

17
sysmenbers
每个数据库
角色成员

18
sysobjects
每个数据库
所有数据库对象

19
syspermissions
每个数据库
权限

20
systypes
每个数据库
用户定义数据类型

21
sysusers
每个数据库
用户

回答5:

sp_help加表名就可以