模型数据库

适用于:SQL Server

model 数据库用作 SQL Server 实例上创建的所有数据库的模板。 因为每次启动 SQL Server 时都会创建 tempdb,所以 model 数据库必须始终存在于 SQL Server 系统中。 model 数据库的全部内容(包括数据库选项)都会被复制到新的数据库。 启动期间,也可使用 model 数据库的某些设置创建新的 tempdb,因此 model 数据库必须始终存在于 SQL Server 系统中。

新创建的用户数据库与 model 数据库使用相同的 恢复模式 。 默认值是用户可配置的。 若要了解模式的当前恢复模式,请参阅查看或更改数据库的恢复模式 (SQL Server)

重要

如果用特定于用户的模板信息修改 model 数据库,我们建议您备份 model。 有关详细信息,请参阅备份和还原系统数据库 (SQL Server)

模型用法

当发出 CREATE DATABASE 语句时,将通过复制 model 数据库的内容来创建数据库的第一部分。 然后用空页填充新数据库的剩余部分。

如果修改 model 数据库,之后创建的所有数据库都将继承这些修改。 例如,可以设置权限或数据库选项或者添加对象,例如,表、函数或存储过程。 model 数据库的文件属性是一个例外且会被忽略(数据文件的初始大小除外)。 模型数据库数据和日志文件的默认初始大小为 8 MB。

model 的物理属性

下表列出了 model 数据和日志文件的初始配置值。

文件 逻辑名称 物理名称 文件增长量
原始数据 modeldev model.mdf 以 64 MB 的速度自动增长到磁盘充满为止。
日志 modellog modellog.ldf 以 64 MB 的速度自动增长到最大 2 TB。

对于 SQL Server 2014,请参阅模型数据库,了解默认文件增加值。

若要移动 model 数据库或日志文件,请参阅 移动系统数据库

数据库选项

下表列出了 model 数据库中每个数据库选项的默认值以及该选项是否可以修改。 若要查看这些选项的当前设置,请使用 sys.databases 目录视图。

数据库选项 默认值 是否可修改
ALLOW_SNAPSHOT_ISOLATION
ANSI_NULL_DEFAULT
ANSI_NULLS
ANSI_PADDING
ANSI_WARNINGS
ARITHABORT
自动关闭
AUTO_CREATE_STATISTICS ON
自动收缩
自动更新统计信息 ON
异步自动更新统计信息
CHANGE_TRACKING
CONCAT_NULL_YIELDS_NULL
CURSOR_CLOSE_ON_COMMIT
CURSOR_DEFAULT GLOBAL
数据库可用性选项 ONLINE

多用户

READ_WRITE




日期相关性优化
DB_CHAINING
加密
混合页分配 ON
NUMERIC_ROUNDABORT
页验证 CHECKSUM
参数化 简单
QUOTED_IDENTIFIER
READ_COMMITTED_SNAPSHOT
恢复 取决于 SQL Server 版本*
RECURSIVE_TRIGGERS
Service Broker 选项 DISABLE_BROKER
值得信赖

* 若要验证数据库的当前恢复模式,请参阅查看或更改数据库的恢复模式 (SQL Server)sys.databases (Transact-SQL)

有关这些数据库选项的说明,请参阅ALTER DATABASE(Transact-SQL)。

限制

不能在 model 数据库中执行下列操作:

  • 添加文件或文件组。
  • 更改排序规则。 默认排序规则为服务器排序规则。
  • 更改数据库所有者。 模型 的所有者是 sa
  • 删除数据库。
  • 从数据库中删除 guest 用户。
  • 启用变更数据捕获。
  • 参与数据库镜像。
  • 删除主文件组、主数据文件或日志文件。
  • 重命名数据库或主文件组。
  • 将数据库设置为 OFFLINE。
  • 将主文件组设置为 READ_ONLY。
  • 使用 WITH ENCRYPTION 选项创建过程、视图或触发器。 加密密钥与在其中创建对象的数据库绑定在一起。 在 model 数据库中创建的加密对象只能用于 model中。