创建数据库时主文件大小错误

LCJ*_*LCJ 9 sql-server

我试图在SQL Server 2005中创建数据库并获得以下错误

Msg 1803,Level 16,State 1,Line 2

CREATE DATABASE语句失败.主文件必须至少为32 MB才能容纳模型数据库的副本.

创建SQL

CREATE DATABASE [MyDatabase] ON  PRIMARY 
    ( NAME = N'MyDatabase_Data', FILENAME = N'D:\SQL SERVER\DataFiles\MyDatabase\MyDatabase.MDF' , SIZE = 3096KB , MAXSIZE = 29687808KB , FILEGROWTH = 262144KB ), 
    ( NAME = N'MyDatabase_Data2', FILENAME = N'D:\SQL SERVER\DataFiles\MyDatabase\MyDatabase_Data2.ndf' , SIZE = 3096KB , MAXSIZE = 10485760KB , FILEGROWTH = 262144KB ), 
     FILEGROUP [FG_Indexes] 
    ( NAME = N'MyDatabase_Indexes', FILENAME = N'D:\SQL SERVER\DataFiles\MyDatabase\MyDatabase_Indexes.ndf' , SIZE = 1920KB , MAXSIZE = 27136000KB , FILEGROWTH = 262144KB )
     LOG ON 
    ( NAME = N'MyDatabase_Log', FILENAME = N'D:\SQL SERVER\LogFiles\MyDatabase\MyDatabase_Log.LDF' , SIZE = 1920KB , MAXSIZE = 7883776KB , FILEGROWTH = 262144KB )
Run Code Online (Sandbox Code Playgroud)

我检查了msdb大小,它大约是32MB ......

EXEC sp_helpdb @dbname= 'MSDB'
Run Code Online (Sandbox Code Playgroud)

MSDB大小

在此输入图像描述

如何克服此错误并创建数据库(不对create database脚本进行任何更改)?

掌握DB

EXEC sp_helpdb @dbname= 'master'
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Dav*_*lum 16

当SQL Server创建新数据库时,它会将model数据库复制为模板. model(取决于您的版本)具有特定的初始大小.

有关详细信息,请参阅此MSDN博客.

您声明新数据库的初始大小应为3MB:

CREATE DATABASE [MyDatabase] ON  PRIMARY 
    ( NAME = N'MyDatabase_Data', FILENAME = N'D:\SQL SERVER\DataFiles\MyDatabase\MyDatabase.MDF' , SIZE = 3096KB , MAXSIZE = 29687808KB , FILEGROWTH = 262144KB )
Run Code Online (Sandbox Code Playgroud)

您需要增加起始大小以适应model数据库的初始大小.

注意:默认型号是3MB(在SQL Server 2012上 - 较低版本较少) - 您可能想要了解为什么您的4MB.


Sam*_*Sam 5

所有新创建的数据库都使用Model数据库作为模板.新数据库的开头不小于Model数据库.
您收到的错误表明模型数据库大小为32MB.
要修复它,请创建大小大于模型数据库大小的数据库.
您还可以缩小模型数据库以减小其大小.
使用自定义大小创建数据库的示例代码

CREATE DATABASE Tests
ON
( NAME = 'Tests',
FILENAME = 'c:\tests.mdf',
SIZE = 33000KB )
GO
Run Code Online (Sandbox Code Playgroud)