一、系统表

数据字典的详细信息请查SQL SERVER BOL,这里仅列出一部分。

1.1、sysservers

1、查看所有本地服务器及链接服务器

select * from master..sysservers

1.2、sysdatabases

1:查询非sa创建的所有数据库

select * from master..sysdatabases

where sid not in(select sid from master..syslogins where name='sa')

--或者

select dbid, name AS DB_NAME from master..sysdatabases

where sid <> 0x01

1.3、sysobjects

1:获取当前数据库中的所有用户表

select name from sysobjects where xtype='U' and status>0

为什么要加status>0,因为表dtproperties,虽然该表的xtype为U,实质上它是系统表。

dtproperties这个表里保存的是关系图,如果没建关系图,就是空的。

注意:这个表只是数据库对象的属性,如果想要看表、索引详细的属性,查看sysindexes。

2:查看当前数据库中所有存储过程

select name as 存储过程名称 from sysobjects where xtype='P' and status>0

为什么要加status>0,是为了去掉当前数据库中的系统存储过程。

注:该系统表中type与xtype的区别是什么?

Type是在SQL SERVER 6.0就有的,xType在SQL SERVER 7.0才出现,Type的保留只是为了向后兼容。每种数据库对象的类型详见SQL SERVER BOL。

1.4、syscolumns

1:获取表或视图的所有字段,存储过程或函数的所有参数

select name from syscolumns where id=object_id('表名')

1.5、sysproperties

1:怎么把SQL SERVER中表设计和表注释读出来

--表的注释全在sysproperties里

select b.name,value from sysproperties as a,sysobjects as b

where a.id=b.id and b.name='表名'

1.6、sysindexes

1:根据聚集索引,快速查询表的行数

SELECT rowcnt,indid FROM sysindexes WHERE id=OBJECT_ID('tableName')and indid < 2

注意:使用这种方法可能不精确,因为系统的统计信息在某些时候不一定是准确的。关于统计的维护(dbcc updateusage()),详见《SQL SERVER 性能优化——查询优化》series。

2:查看索引表信息

select

table_Name=sysobjects.Name,

index_Name=sysindexes.Name,

Type=sysobjects.type,

分配索引页=sysindexes.reserved,

使用索引页=sysindexes.used,

叶子层页=sysindexes.Dpages,

非叶子层页=sysindexes.used-sysindexes.Dpages,

rows=sysindexes.rowcnt

from sysindexes left outer join sysobjects on sysindexes.id=sysobjects.id

where sysindexes.indid>0 and sysindexes.indid<255 and sysindexes.status & 64=0

注意:若发现非叶子层的页数为负数,最好是运行DBCC UPDATEUSAGE ('dbname','tbname','ixname')来更新一下sysindexes的信息

1.7、syslogins

SQL SERVER 服务器的登录信息,比如:sa,有关登录、用户、角色的信息详见《SQL SERVER 2000 管理——安全——用户权限》。

select * from syslogins

select * from sysxlogins

sysxlogins是syslogins的精简版,BOL中没有说明,不推荐使用。

 

1.8、sysprocesses

1:查看用户进程信息

select spid,uid,syslogins.name,login_time,net_address from sysprocesses,syslogins where sysprocesses.sid=syslogins.sid

2:查看数据库启动时间

select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1

1.9、sysdepends

1:查看与某一个表相关的视图、存储过程、函数

select * from sysdepends where depid=object_id('表名')

--或者

select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'

注意:这种查法,只适用在没有with Encryption选项,即没有加密该对象时。

--或者

sp_depends

注意:这个表的统计信息并不准确,没有什么好的办法,查询结果只可用于参考。

1.10、sysmessages

SQL SERVER返回的内部错误都有在这里,可自行定义进行错误的添加,但一般我习惯于新建一个错误的表来定义自己程序中的错误。

select * From master..sysmessages where error=5037

1.11、sysfiles、sysfilegroups

1、查询当前数据库的文件使用情况

select name,filename,size/128 as 'used(M)',case maxsize/128 when 0 then 'no limit' else cast(maxsize/128 as varchar(10)) end as 'total(M)' from sysfiles

2、查询当前数据库的表所在文件组

select distinct a.id,a.name,b.groupid,c.groupname from sysobjects a inner join sysindexes b on a.id=b.id

inner join sysfilegroups c on b.groupid=c.groupid

where a.xType='U' and a.status>0 order by a.name

sysfiles1是sysfiles的精简版,BOL中没有说明,不推荐使用。

二、系统视图

在master数据库中有INFORMATION_SCHEMA和system_function_schema两个用户,它们的登录是<无>,这是系统内置的两个用户。

INFORMATION_SCHEMA拥有自已的视图,在SQL Server 2000中没有被广泛使用,因为很多时候都可以从系统表中得到我们想要的结果,同样到了SQL Server 2005中,被广泛使用的仍然是sys所拥有的视图,SQL Server 2005的相关内容详见后续《SQL Server 2005》series文章。举例如下:

1、查询某个表的哪些字段不允许为空

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS

where IS_NULLABLE='NO' and TABLE_NAME='stb_User'

2、查询某个表的键约束

select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE

where TABLE_NAME='stb_User'

注:键约束,是指除了CHECK、NOT NULL外的约束,即PK,FK,UNIQUE,DEFAULT不是约束。

sql server系统表和视图相关的语句的更多相关文章

  1. Sql server 系统表

    sql server系统表详细说明 SQL Server 用户库中系统表说明 名称 说明 备注 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.   sys ...

  2. SQL Server 系统表简介

    SQL Server 系统表简介 系统目录是由描述SQL Server 系统的数据库.基表.视图和索引等对象的结构的系统表组成.SQL Server 经常访问系统目录,检索系统正常运行所需的必要信息. ...

  3. SQL Server系统表sysobjects介绍与使用(转)

    SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可 ...

  4. SQL Server系统表sysobjects介绍

    SQL Server系统表sysobjects介绍 sysobjects 表结构: 列名 数据类型 描述 name sysname 对象名,常用列 id int 对象标识号 xtype char(2) ...

  5. SQL Server系统表介绍与使用

    关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器.你可 ...

  6. sql server 系统表系统视图 及作用说明

    sql server 系统视图,可分为: 目录视图   兼容性视图    动态管理视图和函数    信息架构视图    复制视图 系统表: sysaltfiles主数据库 保存数据库的文件 sysch ...

  7. SQLSERVER系统视图 sql server系统表详细说明

    参考 https://www.cnblogs.com/luluping/archive/2012/11/05/2754639.html https://www.cnblogs.com/litubin/ ...

  8. SQL Server系统表sysobjects介绍与使用(转))

    这就让sysobjects表格有了用武之地.虽然我不建议你更新这个表格,但是你当然有权对其进行审查. sysobjects 表  在数据库内创建的每个对象(约束.默认值.日志.规则.存储过程等)在表中 ...

  9. sql server系统表详细说明

    sysaltfiles  主数据库 保存数据库的文件 syscharsets  主数据库字符集与排序顺序 sysconfigures 主数据库 配置选项 syscurconfigs 主数据库当前配置选 ...

随机推荐

  1. 记Booking.com iOS开发岗位线上笔试

    今晚参加了Booking的iOS职位线上笔试,结束后方能简单归纳一下. 关于测试内容: Booking采用了HackerRank作为测试平台,测试总时长为75分钟,总计4道题. 测试之前我很紧张,因为 ...

  2. fast.ai(零)windows + pytorch 0.4

    一.下载 git clone https://github.com/fastai/fastai.git 或者直接下载下来 二.安装pytorch 去官网安装建议安装即可 https://pytorch ...

  3. OC学习5——类和对象

    1.OC是在C语言基础上进行扩展得到的一门面向对象的程序设计语言,它也提供了定义类.成员变量和方法的基本功能.类可以被认为是一种自定义的数据类型,使用它可以定义变量,所有使用类定义的变量都是指针类型的 ...

  4. Flask源码复习之路由

    构建路由规则 一个 web 应用不同的路径会有不同的处理函数,路由就是根据请求的 URL 找到对应处理函数的过程. 在执行查找之前,需要有一个规则列表,它存储了 url 和处理函数的对应关系.最容易想 ...

  5. curl: (7) Failed connect to 172.16.100.199:9200; 没有到主机的路由

    没有到主机的路由这种问题很常见,多数是由机器的防火墙没有关闭. Ubuntu 查看防火墙状态 ufw status 关闭防火墙 ufw disable centos6 查看防火墙状态 service ...

  6. 微信小程序开发总结(一)

    微信小程序从2016年9月21日开始内测 ,以及在2017年1月9号正式发布也有一段时间了, 很多人开始拥抱微信小程序,我也是一样 ,从微信小程序内测开始就加入进来 , 开始研究微信小程序 ,属于最早 ...

  7. 交叉编译问题记录-嵌入式环境下 GDB 的使用方法

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10693247.html 本文以嵌入式 Linux 环境下的 gdb 使用为例,记录交叉编 ...

  8. 你不知道的Linux(持续更新中)

    1.关于GNU.Linux.GNU/Linux三者的关系 GNU 项目创始于一九八四年,旨在开发一个类似 Unix ,且为自由软件的完整的操作系统: GNU 系统.(也可把GNU看成一个自由软件工程) ...

  9. ASP.NET Core配置环境变量和启动设置

    在这一部分内容中,我们来讨论ASP.NET Core中的一个新功能:环境变量和启动设置,它将开发过程中的调试和测试变的更加简单.我们只需要简单的修改配置文件,就可以实现开发.预演.生产环境的切换. A ...

  10. 简单JAVA爬虫51Jobs

    使用Jsoup工具,它是一个HTML解析器,可以直接直接解析某个地址或者HTML文件.还可 通过Dom,CSS以及类似JQuery的操作方法操作数据. Jsoup官方文档地址:https://jsou ...