如何:添加文件和文件组

每个数据库都有一个默认的文件组,并且该文件组上至少会定义一个文件,但您可以为数据库项目定义其他文件组和文件。 通过定义和使用其他文件组,可以改进数据库性能并就如何备份和还原数据库对象进行更好的管理。 有关更多信息,请参见文件和文件组概述

如果您从数据库项目中删除一个文件组,则可以将所做的更改部署到新的数据库。 但是,如果您将相同的更改部署到现有的数据库,则忽略该更改。

提示

如果您处理的是数据层应用程序 (DAC) 项目,则无法定义文件或文件组。 如果您要控制数据库中的文件和文件组,则必须使用数据库项目。

添加文件组

  1. 在**“解决方案资源管理器”**中,展开要向其中添加文件组的数据库项目。

  2. 依次展开**“架构对象”节点、“数据库级别对象”节点和“存储”**节点。

  3. 右击**“文件组”文件夹,指向“添加”,然后单击“新建项”**。

  4. 在**“添加新项”对话框的“安装模板”中,单击“存储”**。

  5. 在详细信息窗格中单击**“文件组”**。

  6. 在**“名称”**中,键入要赋予新文件组的名称。

  7. 单击**“添加”**。

    该文件组将添加到数据库项目中,并且文件组列表中将出现一个新项。 Transact-SQL 代码编辑器将打开并显示新文件组的定义。

    在生成和部署数据库项目时,将会在要更新的数据库中新建所有的文件和文件组。

添加日志文件或者向文件组中添加文件

  1. 在**“解决方案资源管理器”**中,展开要向其中添加文件组的数据库项目。

  2. 依次展开**“架构对象”节点、“数据库级别对象”节点和“存储”**节点。

  3. 右击**“文件”文件夹,指向“添加”,然后单击“新建项”**。

  4. 在**“添加新项”对话框的“已安装的模板”中,单击“存储”**。

  5. 在详细信息窗格中,单击**“文件组文件”“日志文件”**。

  6. 在**“名称”**框中,键入要赋予新文件的名称。

  7. 单击**“添加”**。

    该文件将添加到数据库项目中,并且 Transact-SQL 编辑器将打开并显示该文件的定义。

  8. 在 Transact-SQL 编辑器中,修改文件定义,以便将文件与逻辑文件组关联,如下例中所示:

    /*
    Do not change the database name.
    It will be properly coded for build and deployment
    This is using sqlcmd variable substitution
    */
    ALTER DATABASE [$(DatabaseName)]
        ADD FILE 
        (
        NAME = [MySqlFile], 
        FILENAME = '$(DefaultDataPath)$(DatabaseName)_MySqlFile.ndf', 
            SIZE = 3072 KB, 
            MAXSIZE = UNLIMITED, 
            FILEGROWTH = 1024 KB
        ) TO FILEGROUP [MyFilegroupName]
    
  9. (可选)修改文件的任何属性。

    例如,可以指定在部署项目时将在其中创建文件的文件组。

    提示

    如果要将项目部署到需要特定配置的位置,则可以对路径使用 SQLCMD 变量。 例如,可以指定 $(DefaultDataPath)$(TargetDatabase).mdf,这是 PRIMARY 文件组中文件的默认值。 然后可以在命令提示符处重写 SQLCMD 变量的值。 有关如何重写这类值的示例,请参见数据库生成和部署概述的“命令行语法”一节。 还可以更新 .dbproj 文件,以便为每个生成配置添加 SQLCMD 变量的值。

  10. 在**“文件”菜单上,单击“全部保存”**。

    在生成和部署数据库项目时,将会在要更新的数据库中新建所有的日志文件和文件组。

请参见

任务

如何:为数据库项目定义变量

如何:定义全文目录

如何:将更改部署到新数据库或现有数据库

概念

文件和文件组概述