Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Renvoyer tous les groupes de fichiers pour la base de données actuelle dans SQL Server

Dans SQL Server, vous pouvez interroger les sys.filegroups vue du catalogue système pour renvoyer une liste de tous les groupes de fichiers pour la base de données actuelle.

Cette vue contient une ligne pour chaque espace de données qui est un groupe de fichiers. En d'autres termes, vos résultats contiennent une ligne par groupe de fichiers.

Exemple 1 – Utilisation de la base de données WideWorldImporters

Voici un exemple à démontrer. Cet exemple utilise l'exemple de base de données WideWorldImporters fourni par Microsoft.

UTILISER WideWorldImporters;SELECT data_space_id,name,type_descFROM sys.filegroups;

Résultat :

+-----------------+-------------------+-------- -------------------------+| data_space_id | nom | type_desc ||-----------------+-------------------+--------- ------------------------|| 1 | PRIMAIRE | LIGNES_FILEGROUP || 2 | DONNÉESUTILISATEUR | LIGNES_FILEGROUP || 3 | WWI_InMemory_Data | MEMORY_OPTIMIZED_DATA_FILEGROUP |+-----------------+-------------------+--------- ------------------------+

Exemple 2 – Changer de base de données

Dans cet exemple, je passe à une autre base de données et exécute à nouveau la requête.

USE Music ;SELECT data_space_id,name,type_descFROM sys.filegroups ;

Résultat :

+----------------+---------+----------------+| data_space_id | nom | type_desc ||-----------------+---------+----------------|| 1 | PRIMAIRE | ROWS_FILEGROUP |+-----------------+---------+----------------+ 

Cette base de données (appelée Musique) n'a qu'un seul groupe de fichiers.

Exemple 3 - Renvoyer toutes les colonnes

Dans les exemples précédents, j'ai sélectionné des colonnes spécifiques à renvoyer. Dans cet exemple, j'utilise un astérisque (* ) pour les renvoyer tous.

SELECT * FROM sys.filegroups ;

Résultat (en utilisant la sortie verticale) :

nom | PRIMARYdata_space_id | 1type | FGtype_desc | ROWS_FILEGROUPis_default | 1is_system | 0filegroup_guid | NULLlog_filegroup_id | NULLest_lecture_seule | 0is_autogrow_all_files | 0

Dans ce cas, j'ai utilisé la sortie verticale pour afficher les résultats verticalement (afin que vous ne soyez pas obligé de faire défiler horizontalement).

Exemple 4 - Inclure le chemin du fichier

Vous pouvez joindre les sys.database_files view pour renvoyer le chemin physique du fichier.

SELECTdf.name AS [nom du fichier DB],df.size/128 AS [taille du fichier (Mo)],fg.name AS [nom du groupe de fichiers],df.physical_name AS [chemin du fichier]FROM sys.database_files AS dfINNER JOIN sys.filegroups AS fgON df.data_space_id =fg.data_space_id;

Résultat (en utilisant la sortie verticale) :

Nom du fichier BD | Taille du fichier musical (Mo) | 8Nom du groupe de fichiers | PRIMARYChemin du fichier | /var/opt/mssql/data/Music.mdf

Le groupe de fichiers PRIMARY est le groupe de fichiers par défaut dans lequel résident le fichier de données et le fichier journal, sauf si vous spécifiez un groupe de fichiers différent. Voir Comment ajouter un groupe de fichiers à une base de données SQL Server pour créer un nouveau groupe de fichiers.