model 数据库
model 数据库用作在 SQL Server 实例上创建的所有数据库的模板。因为每次启动 SQL Server 时都会创建 tempdb,所以 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 Management Studio) 或 sys.databases (Transact-SQL)。
有关这些数据库选项的说明,请参阅 ALTER DATABASE (Transact-SQL)。
限制
不能在 model 数据库中执行下列操作:
添加文件或文件组。
更改排序规则。默认排序规则为服务器排序规则。
更改数据库所有者。model 归 dbo 所有。
删除数据库。
从数据库中删除 guest 用户。
启用变更数据捕获。
参与数据库镜像。
删除主文件组、主数据文件或日志文件。
重命名数据库或主文件组。
将数据库设置为 OFFLINE。
将数据库或主文件组设置为 READ_ONLY。
使用 WITH ENCRYPTION 选项创建过程、视图或触发器。加密密钥与在其中创建对象的数据库绑定在一起。在 model 数据库中创建的加密对象只能用于 model 中。