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
在SQL选中表按ALT+F1试试
查看表的结构用:SP_MShelpcolumns'dbo.表名'
名称
地址
说明
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
每个数据库
用户
sp_help加表名就可以