如何将文件组添加到 SQL Server 数据库 (T-SQL)
SQL Server 数据库至少有两个操作系统文件;数据文件和日志文件。
数据文件保存数据库中的实际数据,以及表、索引、存储过程和视图等对象。日志文件包含恢复数据库中的所有事务所需的信息。
使用默认选项创建数据库时,将创建这两个文件。这些文件在主文件组中创建。此文件组包含主数据文件和未放入其他文件组的任何辅助文件。因此,主文件组是默认文件组(除非使用该语句对其进行了更改)。ALTER DATABASE
创建多个数据文件时,还可以选择将它们分组到用户定义的文件组中。这允许您将文件逻辑分组到您创建的自己的文件组中。然后,除了主文件组之外,此文件组还将存在。数据库对象将保留在主文件组中。
本文演示如何创建用户定义的文件组并向其中添加一些数据文件。
示例
下面是使用 T-SQL 将文件组添加到现有数据库的示例:
USE master GO
ALTER DATABASE Solutions
ADD FILEGROUP Solutions1Filegroup1;
GO
ALTER DATABASE Solutions
ADD FILE
(
NAME = Solutions_dat_2,
FILENAME = ‘D:\mssql\data\Solutions_dat2.ndf’,
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 5%
),
(
NAME = Solutions_dat_3,
FILENAME = ‘D:\mssql\data\Solutions_dat3.ndf’,
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 5%
)
TO FILEGROUP Solutions1Filegroup1;
GO
此示例创建一个名为 并向其中添加两个数据文件的文件组。我们为每个文件指定通常的内容,例如其逻辑名称、物理文件路径、大小等。Solutions1Filegroup1
此示例的假设是已经有一个名为 的数据文件。因此,我们将这些文件命名为相同,但只是增加每个文件的数量。Solutions_dat_1
此外,在此示例中,我们将文件组命名为好像它只是众多文件组之一。如果需要,我们可以创建多个文件组,如果这样做,我们可能需要一个命名约定,以便于区分每个文件组。
查看文件组
您可以通过查询目录视图来查看给定数据库的文件组。sys.filegroups
例:
USE Solutions; SELECT name, type_desc FROM sys.filegroups;
输出:
name type_desc
-------------------- --------------
PRIMARY ROWS_FILEGROUP
Solutions1Filegroup1 ROWS_FILEGROUP如果需要,还可以使用星号 (*) 返回所有行。