model 数据库

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

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

重要说明重要提示

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

model 的用法

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

如果修改 model 数据库,之后创建的所有数据库都将继承这些修改。 例如,可以设置权限或数据库选项或者添加对象,例如,表、函数或存储过程。

model 的物理属性

下表列出了 model 数据和日志文件的初始配置值。 对于不同版本的 SQL Server,这些文件的大小可能略有不同。

文件

逻辑名称

物理名称

文件增长

主数据

modeldev

model.mdf

以 10% 的速度自动增长到磁盘充满为止。

日志

modellog

modellog.ldf

以 10% 的速度自动增长到最大 2 TB。

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

数据库选项

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

数据库选项

默认值

是否可修改

ALLOW_SNAPSHOT_ISOLATION

OFF

ANSI_NULL_DEFAULT

OFF

ANSI_NULLS

OFF

ANSI_PADDING

OFF

ANSI_WARNINGS

OFF

ARITHABORT

OFF

AUTO_CLOSE

OFF

AUTO_CREATE_STATISTICS

ON

AUTO_SHRINK

OFF

AUTO_UPDATE_STATISTICS

ON

AUTO_UPDATE_STATISTICS_ASYNC

OFF

CHANGE_TRACKING

OFF

CONCAT_NULL_YIELDS_NULL

OFF

CURSOR_CLOSE_ON_COMMIT

OFF

CURSOR_DEFAULT

GLOBAL

数据库可用性选项

ONLINE

MULTI_USER

READ_WRITE

DATE_CORRELATION_OPTIMIZATION

OFF

DB_CHAINING

OFF

ENCRYPTION

OFF

NUMERIC_ROUNDABORT

OFF

PAGE_VERIFY

CHECKSUM

PARAMETERIZATION

SIMPLE

QUOTED_IDENTIFIER

OFF

READ_COMMITTED_SNAPSHOT

OFF

RECOVERY

取决于 SQL Server 的版本1

RECURSIVE_TRIGGERS

OFF

Service Broker 选项

DISABLE_BROKER

TRUSTWORTHY

OFF

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

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

限制

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

  • 添加文件或文件组。

  • 更改排序规则。 默认排序规则为服务器排序规则。

  • 更改数据库所有者。 modeldbo 拥有。

  • 删除数据库。

  • 从数据库中删除 guest 用户。

  • 启用变更数据捕获。

  • 参与数据库镜像。

  • 删除主文件组、主数据文件或日志文件。

  • 重命名数据库或主文件组。

  • 将数据库设置为 OFFLINE。

  • 将主文件组设置为 READ_ONLY。

  • 使用 WITH ENCRYPTION 选项创建过程、视图或触发器。 加密密钥与在其中创建对象的数据库绑定在一起。 在 model 数据库中创建的加密对象只能用于 model 中。

相关内容

系统数据库

sys.databases (Transact-SQL)

sys.master_files (Transact-SQL)

移动数据库文件