SQL Server安装时,它有四个数据库:master数据库,model数据库,sybsystemprocs数据库和tempdb数据库。Master,Model和Tempdb都放在Master设备上。
一、master数据库
master数据库从总体上控制用户数据库和SQL Server的操作。它保留着用户帐号(在syslogins中),可设置的环境变量(在sysconfigures中),系统错误信息(在sysmessages中)。在SQL Server上的数据库(在sysdatabases中),给每个数据库分配的存储空间(在sysusages中),装入系统的磁带和磁盘(在sysdevices中),以及动态锁(在syslocks中)的轨迹。另外,系统过程是在SQL Sserver安装时用buildmaster程序创建的。它是存储在master中的。
只有在master数据库中才能用create database、或alter database,disk init等命令。
往master数据库设备上增加用户目标是可能的,但不好,在master数据库上创建目标的目的应该是从总体上管理系统。应该在master数据库上对用户设置权限,以使大多数用户不能在那里创建目标。
每次改变master数据库时最好用dump database备份它,如果master数据库被破坏,恢复它的方法与恢复用户数据库不同。
二、model 数据库
model 数据库也是随SQL Server一起提供的。它提供了新用户数据库的雏型,每次用create database命令时,SQL Server都产生一个model数据库的拷贝,然后把它扩展到命令要求的尺寸。
Model数据库中包含着数据库需要的系统表。它可以修改成新创建数据库的结构——对model数据库的任何修改都会在每个创建的数据库中反映出来。下面是几个通常用到的对model数据库的改变:
增加数据类型、规则或缺省;
可存取SQL SERVER上所有数据库的用户用sp_adduser增加到model数据库上;
诸如select into/bulk copy那样的数据库选项可在model中设置。这些设置会反映到新创建的数据库中。它们在model中最缺省值是false。
三、临时数据库
SQL Server提供了一个临时数据库(tempdb)。该库为临时表和其他临时工作存储提供了一个存储区域。
不管是什么数据库,所有临时表都存放在tempdb中。然而,可以从tempdb或创建临时表的数据库来查询临时表。如果查询tempdb..sysobjects,则系统会告诉你在临时表名上加了一个后缀。仅当从tempdb使用临时表时,sp_help才工作于临时表上。
Tempdb是SQL Server上所有数据库共享的工作空间。每当用户退出SQL Server或系统从失败中恢复时,用户的临时表从tempdb删除。存储过程退出时,它的临时表也被删除。在应用结束前,临时表也可被显示的drop掉。
Tempdb缺省的尺寸是2M字节,在财务软件中,由于用到的临时表很多,根据实际的情况,可以把它扩充到80~100M或更多。