在SQL Server中,“模型”数据库显然在创建新数据库时充当一种模板。看起来这个数据库的某些属性似乎是由新数据库继承的。但是,我观察到新数据库不会继承FILEGROWTH属性。
这篇(有些陈旧)的帖子暗示这应该是遗传的:
要更改将来数据库的默认设置,请进行更改 在模型数据库上。
然而,在这篇文章中,有人基本上提出了类似的问题: http://www.sqlservercentral.com/Forums/Topic1065073-391-1.aspx
所以我的问题是模型数据库的FILEGROWTH属性应该如何影响新数据库;并在SQL Server版本之间更改此行为?
答案 0 :(得分:1)
CREATE DATABASE
的文档可以说明SIZE
参数:
如果未为主文件提供大小,则数据库引擎会使用模型数据库中主文件的大小。如果指定了辅助数据文件或日志文件但未为文件指定大小,则数据库引擎会将文件设置为1 MB。为主文件指定的大小必须至少与model数据库的主文件一样大。
然而,对于FILEGROWTH
参数,它说:
如果未指定FILEGROWTH,则数据文件的默认值为1 MB,日志文件的默认值为10%,最小值为64 KB。
SQL Server 2000 CREATE DATABASE
的文档也与来自模型的文档一致:
如果未指定FILEGROWTH,则默认值为10%,最小值为64 KB
原始答案:
通过阅读model database上的MSDN页面,您可以推断答案为否,这不是继承的。首先,我们有:
发出CREATE DATABASE语句时,通过复制model数据库的内容来创建数据库的第一部分。然后,新数据库的其余部分将填充空页。
这意味着在使用 model 之前,新数据库的数据库文件已经存在。也:
无法在model数据库上执行以下操作:
- 添加文件或文件组。
如果通过完全复制磁盘上的文件结构来创建新数据库,然后克隆主数据库中的sys.database_files
行,则不需要此限制。