[英]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.