作者:1234 | 来源:互联网 | 2023-10-10 11:11
在Sqlserver数据库历代版本当中,系统数据库有四个,master,model,msdb,tempdbmaster----记录SQLServer系统的所有系统级信息。这包括实例范围的元数
在Sqlserver数据库历代版本当中,系统数据库有四个,master,model,msdb,tempdb
master----记录 SQL Server 系统的所有系统级信息。这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置。此外,master 数据库还记录了所有其他数据库的存在、数据库文件的位置以及 SQL Server 的初始化信息。因此,如果 master 数据库不可用,则 SQL Server 无法启动。在 SQL Server 中,系统对象不再存储在 master 数据库中,而是存储在 Resource 数据库中。
http://msdn.microsoft.com/zh-cn/library/ms187837.aspx
SA的密码存储在这个数据库里
model----在 SQL Server 实例上创建的所有数据库的模板。因为每次启动 SQL Server 时都会创建 tempdb,所以 model 数据库必须始终存在于 SQL Server 系统中。
http://msdn.microsoft.com/zh-cn/library/ms186388.aspx
因为是模板数据库,很多继承类的模板,如安全模板都在这里。
msdb----由 SQL Server 代理用于计划警报和作业,也可以由其他功能(如 Service Broker 和数据库邮件)使用。
http://msdn.microsoft.com/zh-cn/library/ms187112.aspx
应该是仆从数据库,存储一些辅助工作的数据库的信息,如备份,邮件日志。
tempdb----临时存储数据库,这里是存储一些缓存类的操作,如临时表。
http://msdn.microsoft.com/zh-cn/library/ms190768.aspx
百度了之后,在MSDN发现Sqlserver数据库里其实还有个隐藏的系统数据库
Resource 数据库
Resource 数据库是只读数据库,它包含了 SQL Server 中的所有系统对象。SQL Server 系统对象(例如 sys.objects)在物理上持续存在于 Resource 数据库中,但在逻辑上,它们出现在每个数据库的 sys 架构中。Resource 数据库不包含用户数据或用户元数据。
Resource 数据库可比较轻松快捷地升级到新的 SQL Server 版本。在早期版本的 SQL Server 中,进行升级需要删除和创建系统对象。由于 Resource 数据库文件包含所有系统对象,因此,现在仅通过将单个 Resource 数据库文件复制到本地服务器便可完成升级。
http://msdn.microsoft.com/zh-cn/library/ms190940.aspx
一些系统表以及Sqlserver每个数据库所有的一些常识,只介绍一些常用的
sys.objects 包含很多信息如Sqlserver2005里用处最大的object_id,存储过程是否是用户创建的等信息,在Sqlserver2005之前的版本是sysobjects,从Sqlserver2005开始每个用户数据库(你自己建立的数据库)都含有这个系统表,表示不知道Sqlserver2000是否是,具体分析见sys.objects (Transact-SQL)。 我用在动态表头上,利用这个表的object_id配合另外一些系统表,就可以实现动态表头。
sys.all_columns 和sys.columns区别在于一个是列出所有的,一个是只列出当前用户数据库的键值,数据字典表很需要这区别出来这两个表,不然取出的东西会不准确。
还有其他的系统表,可以见对象目录视图 (Transact-SQL)