SQL Server 中的系统表

存储SQL所有的系统信息。存储有关数据库服务中的元数据所谓元数据即(比如数据服务器有哪些用户数据库、数据库服务器有哪些登陆账号,数据库中都有哪些表,每个表都有哪些字段
每个数据库有哪些存储过程、视图等等的数据),系统表一般sys开头。

任何用户都不应直接更改系统表。 例如,不要尝试使用
DELETE、UPDATE、INSERT 语句或用户定义的触发器修改系统表。

若要检索存储在系统表中的信息,应用程序应使用下列组件之一:

  • 系统存储过程
  • Transact-SQL 语句和函数
  • SQL Server 管理对象 (SMO)
  • 复制管理对象 (RMO)
  • 数据库 API 目录函数

几个重要的系统表

一、master.dbo.sysdatabases系统表:

Microsoft SQL Server 上的每个数据库在表中占一行。

最初安装 SQL Server 时,sysdatabases 包含 master、model、msdb、mssqlweb 和 tempdb 数据库的项。

关键字段:

name :库的名字;

dbid :库的ID,dbid从1到5是系统的。分别是:master、model、msdb、mssqlweb、tempdb 这五个库。

select * from master.dbo.sysdatabases 就可以查询出所有的库名。

二、Sysobjects:(以前的博客有对此表的介绍)

SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等。

关键字段

Name:对象名称

id:对象ID

xtype(type):对象类型

uid:所有者对象用户id

status:对象状态。

对象类型(xtype)。可以是下列对象类型中的一种:

C = CHECK 约束

D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束

L = 日志

FN = 标量函数

IF = 内嵌表函数

P = 存储过程

PK = PRIMARY KEY 约束(类型是 K)

RF = 复制筛选存储过程

S = 系统表

TF = 表函数

TR = 触发器

U = 用户表

UQ = UNIQUE 约束(类型是 K)

V = 视图

X = 扩展存储过程

当xtype=‘U‘ and status>0代表是用户建立的表,对象名就是表名,对象ID就是表的ID值(object_id(‘表名’))。

select * from
wyl_db.dbo.sysobjects where xtype=‘U‘ and status>0 就可以列出库wyl_db中所有的用户建立的表名。

三、syscolumns :

每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。

关键字段有:

name :字段名称

id:表的id号

colid :字段id号。

其中的 ID 是 刚上我们用sysobjects得到的表的ID号。

select name from
wyl_db.dbo.syscolumns where id=object_id(‘表名‘): 获得wyl_db.dbo.syscolumns某个表中的字段

其他系统表

sysaltfiles
              保存数据库的文件

syscharsets               字符集与排序顺序

sysconfigures             配置选项

syscurconfigs             当前配置选项

syslanguages              语言

syslogins                 登陆帐号信息

sysoledbusers             链接服务器登陆信息

sysprocesses              进程

sysremotelogins           远程登录帐号

sysconstrains             限制

sysfilegroups             文件组

sysfiles                  文件

sysforeignkeys            外部关键字

sysindexs                 索引

sysmenbers                角色成员

syspermissions            权限

systypes                  用户定义数据类型

sysusers                  用户

时间: 2024-11-23 14:58:34

SQL Server 中的系统表的相关文章

关于SQL Server中的系统表之一 sysobjects

微软Sql Server数据库是企业开发管理中最常用的数据库系统之一.其功能强大而且使用简单.方便.我们在数据库中创建数据库.表.视图.触发器.存储过程.函数等信息. 最常用的功能之一,查询数据,例如: 1 SELECT [SysAreaId] 2 ,[AreaName] 3 ,[AreaNamePinYin] 4 ,[ShortName] 5 ,[AreaTypeId] 6 ,[Depth] 7 ,[ParentId] 8 ,[PostCode] 9 FROM [SavionPlatMisDB

SQL Server中临时表与表变量的区别

2009年02月20日 星期五  19:31 我 们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量.在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们 实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与永久表相似,只是它的创建是在Tempdb中,它只有在一个数据库连接结束后或者由SQL命令DROP掉,才会消失,否则就会一直存在.临时表在创建的时候都会产生SQL Ser

在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题

原文:在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题: 消息 15281,级别 16,状态 1,第 1 行 SQL Server 阻止了对组件 'Ad Hoc Di

sql server中的系统数据库

1.master数据库 master是SQL Server中最重要的数据库,是整个数据库服务器的核心.用户不能直接修改该数据库,如果损坏了master数据库,整个SQL Server服务器将不能工作.该数据库中包含以下内容:所有用户的登陆信息.用户所在的组.所有系统的配置选项.服务器中本地数据库的名称和信息.SQL Server的初始化方式等.作为一个数据库管理员,应该顶起备份master数据库. 2.model数据库 model数据库是SQL Server中创建数据库的模板,如果用户希望创建的

关于SQL Server中修改“用户自定义表类型”的问题

本文出处:http://www.cnblogs.com/wy123/p/7282682.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) SQL Server开发过程中,为了传入数据集类型的变量(比如接受C#中的DataTable类型变量),需要定义“用户自定义表类型”,通过“用户自定义表类型”可以接收二维数据集作为参数,在需要修改“用户自定义表类型”的时候,增加字段,删除字段,修改字段类型等,它没有像表一样

SQL Server中Delete语句表名不能用别名

delete from TABLEA A where A.FIELD1=10        (ORACLE适用)delete TABLEA from TABLEA A where A.FIELD1=10 (SQLSERVER适用)delete  from TABLEA where TABLEA.FIELD1=10    (Ora/SQL均适用)

Sql Server中判断表、列不存在则创建的方法[转]

一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法  ? 1 2 3 4 5 6 7 8 IF EXISTS (  SELECT 1 FROM SYSOBJECTS T1  INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID  WHERE T1.NAME='A' AND T2.NAME='C'  )  PRINT '存在'  E

(4.38)sql server中的事务控制及try cache错误处理

一.事务控制 BEGIN TRY BEGIN TRAN; DECLARE @aaa NVARCHAR(MAX); SET @aaa = 9 / 0; COMMIT TRAN; END TRY BEGIN CATCH --[错误]-- DECLARE @ErrorMessage NVARCHAR(MAX) , @ErrorSeverity INT , @ErrorState INT , @exception NVARCHAR(255); SELECT @ErrorMessage = ERROR_M

[转载]在SQL Server 中,如何实现DBF文件和SQL Server表之间的导入或者导出?

原来使用SQL Server 2000数据库,通过DTS工具很方便地在SQL Server和DBF文件之间进行数据的导入和导出,现在安装了SQL Server2005之后,发现其提供的“SQL Server导入导出向导”中的数据源没有原来的丰富,缺少对DBF文件的支持. 1.右击数据库,选择“任务”>“导入数据”,打开“SQL Server导入和导出向导”对话框.2.在“数据源”中选择Microsoft OLE DB Provider for Visual FoxPro,单击“属性”按钮,打开“