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

标签 sql-server visual-studio sql-server-2008 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]

( documentation )。

当我在选中始终重新创建数据库选项的情况下单击发布时,文件 SqlFile1 是在 PRIMARY 文件组中创建的,但初始大小设置为 3 MB,自动增长为 1 MB,无限制增长。没有错误或警告消息。

有趣的是,以下 SQL 脚本:
ALTER DATABASE DatabaseTest
MODIFY FILE (NAME = [SqlFile1], SIZE = 5000MB, FILEGROWTH = 50%);
GO

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

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

最佳答案

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

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

关于sql-server - 如何在数据库项目中设置初始数据库文件大小和文件增长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23632040/

相关文章:

mysql - SQL 存储过程

c# - 如何在使用相对路径发布应用程序后创建的应用程序文件中访问 c​​# 中的文件夹?

c# - Visual Studio 中变量名称下的三个灰点

sql - 根据前一行数据自动计算sql表中的列

sql-server-2008 - TSQL 汇总 - 返回不为空

mysql - SQL查询子查询结构

sql - 关键字 'UPDATE' 附近的语法不正确

mysql - 我如何获取 SQL 中新插入行的主键值,它应该适用于所有 SQL 库

visual-studio - Visual Studio 项目中不存在目标 "build"

sql - 从日期时间表中获取包含开始和结束值的列表