SQL Server 系统表简介
系统目录是由描述SQL Server 系统的数据库、基表、视图和索引等对象的结构的系统表组成。SQL Server 经常访问系统目录,检索系统正常运行所需的必要信息。
1. Sysobjects表
SQL Server 的主系统表sysobjects出现在每个数据库中,它对每个数据库对象含有一行记录。
2. Syscolumns表
系统表syscolumns出现在master数据库和每个用户自定义的数据库中,它对基表或者视图的每个列和存储过程中的每个参数含有一行记录。
3. Sysindexes表
系统表sysindexes出现在master数据库和每个用户自定义的数据库中,它对每个索引和没有聚簇索引的每个表含有一行记录,它还对包括文本/图像数据的每个表含有一行记录。
4. Sysusers表
系统表sysusers出现在master数据库和每个用户自定义的数据库中,它对整个数据库中的每个Windows NT用户、Windows NT用户组、SQL Server 用户或者SQL Server 角色含有一行记录。
5. Sysdatabases表
系统表sysdatabases对SQL Server 系统上的每个系统数据库和用户自定义的数据库含有一行记录,它只出现在master数据库中。
6. Sysdepends表
系统表Sysdepends对表、视图和存储过程之间的每个依赖关系含有一行记录,它出现在master数据库和每个用户自定义的数据库中。
7. Sysconstraints表
系统表sysconstraints对使用CREATE TABLE或者ALTER TABLE语句为数据库对象定义的每个完整性约束含有一行记录,它出现在master数据库和每个用户自定义的数据库中。
8.sys.tables
显示出当前数据库中的所有的表对象
9.sys.columns
显示当前数据表中所有列
10.sys.types
显示当前数据库中的说有字段类型
使用实例
获取某个表中的所有字段的名称和类型
select a.name as fieldname,b.type_desc,b.type,t.name as typename from sys.columns a
left join sys.objects b on a.object_id=b.object_id left join sys.types t on a.system_type_id=t.system_type_id
where b.type = 'U' and charindex('UDT',t.name,0)<=0 and charindex('sys',t.name,0)<=0 and b.name ='cf_user'
其中b.type为类型,U表示是用户表,V表示是视图