繁体   English   中英

创建具有定义文件大小的SQL Server数据库

[英]Create SQL Server database with defined file size

我想创建一个定义文件大小为512 KB的.mdf SQL Server数据库文件:

using System.Data.SqlClient;

SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;Database=master");

if (connection.State == ConnectionState.Closed) 
     connection.Open();

var command = connection.CreateCommand();
command.CommandText = "CREATE DATABASE thedb ON PRIMARY (NAME='thedb', FILENAME='r:\thedb.mdf', SIZE = 512KB, " + 
     "MAXSIZE = UNLIMITED, FILEGROWTH = 500KB) LOG ON (NAME ='thedb_log', FILENAME = 'r:\thedb_log.ldf', SIZE = 512KB)";

command.ExecuteNonQuery();

这将创建一个大小为8 MB的.mdf文件和一个大小为64.5 MB(!)的.ldf文件...

如果我省略LOG ON ,那么.ldf文件的大小也是8 MB。

MSDN参考

如果没有为主文件提供大小,则数据库引擎将使用模型数据库中主文件的大小。 模型的默认大小为8 MB(从SQL Server 2016(13.x开始))或1 MB(对于早期版本)。 如果指定了辅助数据文件或日志文件,但未为文件指定大小,则数据库引擎会将文件设置为8 MB(从SQL Server 2016(13.x开始))或1 MB(对于早期版本)。 为主文件指定的大小必须至少与模型数据库的主文件一样大。

检查模型数据库mdf文件的大小。 您的新数据库不能小于这个值。 如果初始文件大小的数字太小,则默认为8MB。 您可以减少模型数据库的大小,以使数据库小于8MB。

您创建的文件可能太小,无法使SQL Server正常运行。 如果您正在寻找小的单文件DB,则可以考虑使用SQLLite

创建数据库时 ,将基于模型数据库创建新数据库 请参见模型数据库和创建新数据库 定义新数据库的大小时,如果该大小小于模型数据库,则将忽略该大小:

为主文件指定的大小必须至少与模型数据库的主文件一样大。

由于模型数据库为8MB,因此任何新数据库的默认(最小)大小也为8MB。

要减小文件大小,可以在模型数据库上执行DBCC SHRINKFILE 允许的最小大小为3MB。

use model;
dbcc shrinkfile(modeldev, 3)

来自: https : //github.com/SimonCropp/LocalDb#template-database-size

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM