一、系统表

数据字典的详细信息请查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. python tricks

    1. cities = ['Marseille', 'Amsterdam', 'New York', 'Londom'] # the good way for i, city in enumerate ...

  2. [视频]K8软件破解脱壳入门教程

    [视频]K8软件破解脱壳入门教程 链接:https://pan.baidu.com/s/1aV9485MmtRedU6pzyr--Vw 提取码:vbak C:\Users\K8team\Desktop ...

  3. Django--自定义 Command 命令

    Django 对于命令的添加有一套规范,你可以为每个app 指定命令.通俗一点讲,比如在使用manage.py文件执行命令的时候,可以自定制自己的命令,来实现命令的扩充. commands的创建 1. ...

  4. Android Studio中设置一个按钮的不同点击触发事件

    my_day_model = (RelativeLayout) v.findViewById(R.id.my_day_model);my_day_pic = (ImageView) v.findVie ...

  5. Eureka编程

    在一些场景下,我们需要监听eureka服务中心的一些状态,譬如某个微服务挂掉了,我们希望能监听到,并给管理员发送邮件通知或钉钉告警. 一.Eureka的监听事件,可以用来监控.告警EurekaInst ...

  6. Redis 哨兵

    作用 Redis Sentinel,即Redis哨兵,在Redis 2.8版本开始引入. 主要提供了配置提供者,通知,哨兵的监控和自动故障转移功能.哨兵的核心功能是主节点的自动故障转移. 下面是Red ...

  7. How to translate virtual to physical addresses through /proc/pid/pagemap

    墙外通道:http://fivelinesofcode.blogspot.com/2014/03/how-to-translate-virtual-to-physical.html I current ...

  8. 进程间通信IPC-管道

    管道是UNIX系统IPC的最古老的形式,所有的UNIX系统都提供此通讯机制.管道有以下两种局限性: 1, 历史上,它们是半双工的(即数据只能在一个方向上流动).现在某些系统提供了全双工管道,但是为了最 ...

  9. Docker实践:python应用容器化

    一.前言 容器使用沙箱机制,互相隔离,优势在于让各个部署在容器的里的应用互不影响,独立运行,提供更高的安全性.本文主要介绍python应用(django)跑在docker容器里,编写dockerfil ...

  10. 细说移动端 经典的REM布局 与 新秀VW布局

    和以往一样,本次项目也放到了 Github 中,欢迎围观 star ~ 1. 前言 2. 基本概念 3. REM布局 4. VW布局 实现单边边框1px 实现多边边框1px 实现边框圆角 实现容器固定 ...