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运行可以正确修改文件的属性。
为什么我的设置被忽略以及如何使它们发挥作用?
在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)