En SQL Server, puede consultar sys.filegroups
vista de catálogo del sistema para devolver una lista de todos los grupos de archivos para la base de datos actual.
Esta vista contiene una fila para cada espacio de datos que es un grupo de archivos. En otras palabras, sus resultados contienen una fila por grupo de archivos.
Ejemplo 1:uso de la base de datos de WideWorldImporters
Aquí hay un ejemplo para demostrar. Este ejemplo utiliza la base de datos de muestra WideWorldImporters proporcionada por Microsoft.
USE WideWorldImporters; SELECT data_space_id, name, type_desc FROM sys.filegroups;
Resultado:
+-----------------+-------------------+---------------------------------+ | data_space_id | name | type_desc | |-----------------+-------------------+---------------------------------| | 1 | PRIMARY | ROWS_FILEGROUP | | 2 | USERDATA | ROWS_FILEGROUP | | 3 | WWI_InMemory_Data | MEMORY_OPTIMIZED_DATA_FILEGROUP | +-----------------+-------------------+---------------------------------+
Ejemplo 2:cambiar de base de datos
En este ejemplo, cambio a una base de datos diferente y vuelvo a ejecutar la consulta.
USE Music; SELECT data_space_id, name, type_desc FROM sys.filegroups;
Resultado:
+-----------------+---------+----------------+ | data_space_id | name | type_desc | |-----------------+---------+----------------| | 1 | PRIMARY | ROWS_FILEGROUP | +-----------------+---------+----------------+
Esta base de datos (llamada Música) solo tiene un grupo de archivos.
Ejemplo 3:devolver todas las columnas
En los ejemplos anteriores, seleccioné columnas específicas para devolver. En este ejemplo, uso un asterisco (*
) para devolverlos todos.
SELECT * FROM sys.filegroups;
Resultado (usando salida vertical):
name | PRIMARY data_space_id | 1 type | FG type_desc | ROWS_FILEGROUP is_default | 1 is_system | 0 filegroup_guid | NULL log_filegroup_id | NULL is_read_only | 0 is_autogrow_all_files | 0
En este caso, utilicé la salida vertical para mostrar los resultados verticalmente (para que no se vea obligado a desplazarse horizontalmente).
Ejemplo 4:incluir la ruta del archivo
Puede unirse a sys.database_files
view para devolver la ruta del archivo físico.
SELECT df.name AS [DB File Name], df.size/128 AS [File Size (MB)], fg.name AS [File Group Name], df.physical_name AS [File Path] FROM sys.database_files AS df INNER JOIN sys.filegroups AS fg ON df.data_space_id = fg.data_space_id;
Resultado (usando salida vertical):
DB File Name | Music File Size (MB) | 8 File Group Name | PRIMARY File Path | /var/opt/mssql/data/Music.mdf
El grupo de archivos PRIMARIO es el grupo de archivos predeterminado en el que residen el archivo de datos y el archivo de registro, a menos que especifique un grupo de archivos diferente. Consulte Cómo agregar un grupo de archivos a una base de datos de SQL Server para crear un nuevo grupo de archivos.