Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Restituisce tutti i filegroup per il database corrente in SQL Server

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):

Nome file DB | Dimensione file musicale (MB) | 8Nome del gruppo di file | PRIMARYPercorso file | /var/opt/mssql/data/Music.mdf

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.