如何在数据库项目中设置初始数据库文件大小和文件增长?

Bar*_*zKP 6 sql-server sql-server-2008 visual-studio visual-studio-2012

我正在尝试在Visual Studio的数据库项目中设置初始数据库文件大小及其自动增长参数,以与“发布”选项一起使用。我已将文件组文件( SqlFile1.sql ) 添加到项目中,其中包含以下内容:

ALTER DATABASE [$(DatabaseName)]
    ADD FILE
    (
        NAME = [SqlFile1],
        FILENAME = '$(DefaultDataPath)$(DefaultFilePrefix)_SqlFile1.ndf',
        SIZE = 5000MB,
        MAXSIZE = UNLIMITED,
        FILEGROWTH = 50%
    ) TO FILEGROUP [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

(文档)。

当我单击“发布”并选中“始终重新创建数据库”选项时,文件将在PRIMARYSqlFile1文件组中创建,但“初始大小”设置为3 MB,“自动增长”为“按 1 MB,无限制增长”。没有错误或警告消息。

有趣的是,下面的 SQL 脚本:

ALTER DATABASE DatabaseTest
MODIFY FILE (NAME = [SqlFile1], SIZE = 5000MB, FILEGROWTH = 50%);
GO
Run Code Online (Sandbox Code Playgroud)

从SQL Management Studio运行可以正确修改文件的属性。

为什么我的设置被忽略以及如何使它们发挥作用?

Bar*_*zKP 2

在bin目录中创建的脚本表明,除逻辑文件名、物理文件名和目标文件组之外的属性确实被忽略。最终我通过添加部署后脚本解决了这个问题。为此,右键单击数据库项目并选择Add -> New item -> User script -> Post-Deployment Script。在此脚本中,您可以随意修改数据库,在本例中,可以使用以下命令更改文件的属性:

ALTER DATABASE [$(DatabaseName)]
    MODIFY FILE
    (
        NAME = [SqlFile1],
        SIZE = 5000MB,
        MAXSIZE = UNLIMITED,
        FILEGROWTH = 50%
    )
Run Code Online (Sandbox Code Playgroud)