In SQL Server puoi interrogare sys.filegroups
vista del catalogo di sistema per restituire un elenco di tutti i filegroup per il database corrente.
Questa vista contiene una riga per ogni spazio dati che è un filegroup. In altre parole, i tuoi risultati contengono una riga per filegroup.
Esempio 1:utilizzo del database WideWorldImporters
Ecco un esempio da dimostrare. Questo esempio utilizza il database di esempio WideWorldImporters fornito da Microsoft.
USE WideWorldImporters;SELECT data_space_id,name,type_descFROM sys.filegroups;
Risultato:
+-----------------+------+--------- --------------------------+| id_spazio_dati | nome | type_desc ||-----------------+------+--------- ------------------------|| 1 | PRIMARIA | ROWS_FILEGROUP || 2 | DATI UTENTE | ROWS_FILEGROUP || 3 | WWI_InMemory_Data | MEMORY_OPTIMIZED_DATA_FILEGROUP |+-----------------+--------------------+---------- ------------------------+
Esempio 2 – Cambia database
In questo esempio, passo a un database diverso ed eseguo nuovamente la query.
USE Music;SELECT data_space_id,name,type_descFROM sys.filegroups;
Risultato:
+-----------------+---------+----------------+| id_spazio_dati | nome | type_desc ||-----------------+---------+----------------|| 1 | PRIMARIA | ROWS_FILEGROUP |+-----------------+---------+----------------+
Questo database (chiamato Musica) ha un solo filegroup.
Esempio 3 – Restituisci tutte le colonne
Negli esempi precedenti, ho selezionato colonne specifiche da restituire. In questo esempio, utilizzo un asterisco (*
) per restituirli tutti.
SELEZIONA * DA sys.filegroups;
Risultato (usando l'output verticale):
nome | PRIMARYdata_space_id | 1tipo | FGtype_desc | ROWS_FILEGROUPè_default | 1è_sistema | 0filegroup_guid | NULLlog_filegroup_id | NULLis_read_only | 0is_autogrow_all_file | 0
In questo caso ho utilizzato l'output verticale per visualizzare i risultati in verticale (in modo da non dover scorrere in orizzontale).
Esempio 4 – Includere il percorso del file
Puoi unirti a sys.database_files
view per restituire il percorso fisico del file.
SELECTdf.name AS [DB File Name],df.size/128 AS [File Size (MB)],fg.name AS [File Group Name],df.physical_name AS [File Path]DA sys.database_files AS dfINNER UNISCITI a sys.filegroups AS fgON df.data_space_id =fg.data_space_id;
Risultato (usando l'output verticale):
Il filegroup PRIMARY è il filegroup predefinito in cui risiedono il file di dati e il file di registro, a meno che non si specifichi un filegroup diverso. Vedere Come aggiungere un filegroup a un database di SQL Server per creare un nuovo filegroup.