Options de fichiers et de groupes de fichiers ALTER DATABASE (Transact-SQL)

Modifie les fichiers et groupes de fichiers associés à la base de données. Ajoute ou supprime des fichiers et des groupes de fichiers d'une base de données et modifie ses attributs ou ses fichiers et groupes de fichiers. Pour obtenir des informations sur d'autres options ALTER DATABASE, consultez ALTER DATABASE (Transact-SQL).

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

ALTER DATABASE database_name 
{
    <add_or_modify_files>
  | <add_or_modify_filegroups>
}
[;]

<add_or_modify_files>::=
{
    ADD FILE <filespec> [ ,...n ] 
        [ TO FILEGROUP { filegroup_name } ]
  | ADD LOG FILE <filespec> [ ,...n ] 
  | REMOVE FILE logical_file_name 
  | MODIFY FILE <filespec>
}

<filespec>::=  
(
    NAME = logical_file_name  
    [ , NEWNAME = new_logical_name ] 
    [ , FILENAME = {'os_file_name' | 'filestream_path' } ] 
    [ , SIZE = size [ KB | MB | GB | TB ] ] 
    [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ] 
    [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB| % ] ] 
    [ , OFFLINE ]
)  

<add_or_modify_filegroups>::=
{
    | ADD FILEGROUP filegroup_name 
        [ CONTAINS FILESTREAM ]
    | REMOVE FILEGROUP filegroup_name 
    | MODIFY FILEGROUP filegroup_name
        { <filegroup_updatability_option> 
        | DEFAULT
        | NAME = new_filegroup_name 
        }
}
<filegroup_updatability_option>::=
{
    { READONLY | READWRITE } 
    | { READ_ONLY | READ_WRITE }
}

Arguments

<add_or_modify_files>::=

Spécifie le fichier à ajouter, supprimer ou modifier.

  • database_name
    Nom de la base de données à modifier.

  • ADD FILE
    Ajoute un fichier à la base de données.

    • TO FILEGROUP { filegroup_name }
      Précise le groupe de fichiers auquel le fichier spécifié doit être ajouté. Pour afficher les groupes de fichiers et le groupe de fichiers par défaut actuels, utilisez l'affichage catalogue sys.filegroups.
  • ADD LOG FILE
    Ajoute un fichier journal à la base de données spécifiée.

  • REMOVE FILE logical_file_name
    Supprime la description du fichier logique d'une instance de SQL Server et supprime le fichier physique. Le fichier ne peut pas être supprimé s'il n'est pas vide.

    • logical_file_name
      Nom logique utilisé pour référencer le fichier dans SQL Server.
  • MODIFY FILE
    Spécifie le fichier à modifier. Vous ne pouvez modifier qu'une seule propriété <filespec> à la fois. La clause NAME doit toujours être spécifiée dans <filespec> pour identifier le fichier à modifier. Si vous définissez l'option SIZE, la nouvelle taille doit être supérieure à la taille actuelle du fichier.

    Pour modifier le nom logique d'un fichier de données ou d'un fichier journal, spécifiez le nom logique du fichier à renommer dans la clause NAME et indiquez le nouveau nom logique à appliquer dans la clause NEWNAME. Exemple :

    MODIFY FILE ( NAME = logical_file_name, NEWNAME = new_logical_name ) 
    

    Pour déplacer un fichier de données ou un fichier journal vers un nouvel emplacement, spécifiez le nom de fichier logique actuel dans la clause NAME et les nouveaux chemin d'accès et nom de fichier de système d'exploitation dans la clause FILENAME. Exemple :

    MODIFY FILE ( NAME = logical_file_name, FILENAME = ' new_path/os_file_name ' )
    

    Lorsque vous déplacez un catalogue de texte intégral, spécifiez uniquement le nouveau fichier dans la clause FILENAME. N'indiquez pas le nom de fichier du système d'exploitation.

    Pour plus d'informations, consultez Déplacer des fichiers de bases de données.

    Pour un groupe de fichiers FILESTREAM, NAME peut être modifié en ligne. FILENAME peut être modifié en ligne ; toutefois, la modification n'entre pas en vigueur tant que le conteneur n'a pas été déplacé physiquement et le serveur arrêté puis redémarré.

    Vous pouvez définir un fichier FILESTREAM sur OFFLINE. Lorsqu'un fichier FILESTREAM est hors connexion, son groupe de fichiers parent est marqué en interne comme hors connexion ; par conséquent, tout accès aux données FILESTREAM dans ce groupe de fichiers échoue.

[!REMARQUE]

Les options <add_or_modify_files> ne sont pas disponibles dans une base de données à relation contenant-contenu.

<filespec>::=

Contrôle les propriétés des fichiers.

  • NAME logical_file_name
    Spécifie le nom logique du fichier.

    • logical_file_name
      Nom logique utilisé pour référencer le fichier dans une instance de SQL Server.
  • NEWNAME new_logical_file_name
    Spécifie un nouveau nom logique pour le fichier.

    • new_logical_file_name
      Nom remplaçant le nom de fichier logique existant. Le nom doit être unique dans la base de données et doit respecter les règles relatives aux identificateurs. Il peut s'agir d'une constante de type caractère ou Unicode, d'un identificateur régulier ou d'un identificateur délimité.
  • FILENAME { 'os_file_name' | 'filestream_path' }
    Spécifie un nom de fichier du système d'exploitation (physique).

    • ' os_file_name '
      Pour un groupe de fichiers standard (ROWS), il s'agit du chemin d'accès et du nom de fichier utilisés par le système d'exploitation lorsque vous créez le fichier. Le fichier doit résider sur le serveur hébergeant SQL Server. Le chemin d'accès spécifié doit exister avant l'exécution de l'instruction ALTER DATABASE.

      Les paramètres SIZE, MAXSIZE et FILEGROWTH ne peuvent pas être définis lorsqu'un chemin d'accès UNC est spécifié pour le fichier.

      [!REMARQUE]

      Les bases de données système ne peuvent pas résider dans les répertoires partagés UNC.

      Les fichiers de données ne doivent pas être placés sur des systèmes de fichiers compressés à moins qu'il ne s'agisse de fichiers secondaires en lecture seule ou que la base de données soit en lecture seule. Les fichiers journaux ne doivent jamais être placés sur des systèmes de fichiers compressés.

      Si le fichier se trouve sur une partition brute, os_file_name doit spécifier uniquement la lettre d'une unité correspondant à une partition brute existante. Chaque partition brute ne peut contenir qu'un seul fichier.

    • ' filestream_path '
      Pour un groupe de fichiers FILESTREAM, FILENAME fait référence à un chemin d'accès où les données FILESTREAM seront stockées. Le chemin d'accès jusqu'au dernier dossier doit exister, et le dernier dossier ne doit pas exister. Par exemple, si vous spécifiez le chemin d'accès C:\MyFiles\MyFilestreamData, C:\MyFiles doit exister avant l'exécution d'ALTER DATABASE, mais le dossier MyFilestreamData ne doit pas exister.

      Les propriétés SIZE et FILEGROWTH ne s'appliquent pas à un groupe de fichiers FILESTREAM.

  • SIZE size
    Spécifie la taille du fichier. SIZE ne s'applique pas aux groupes de fichiers FILESTREAM.

    • size
      Taille du fichier.

      Lorsqu'elle est spécifiée avec l'instruction ADD FILE, l'option size représente la taille initiale du fichier. Lorsqu'elle est spécifiée avec MODIFY FILE, size représente la nouvelle taille du fichier et doit avoir une valeur supérieure à la taille actuelle du fichier.

      Lorsque vous ne précisez pas le paramètre size pour le fichier primaire, le moteur de base de données SQL Server utilise la taille du fichier primaire de la base de données model. Lorsqu'un fichier journal ou fichier de données secondaire est spécifié mais que size n'est pas spécifié pour ce fichier, le Moteur de base de données lui donne une taille de 1 Mo.

      Les indications Ko, Mo, Go et To peuvent être utilisées pour indiquer qu'il s'agit de kilo-octets, mégaoctets, gigaoctets ou téraoctets. La taille est exprimée par défaut en mégaoctets. Précisez un nombre entier sans aucune décimale. Pour spécifier une fraction d'un mégaoctet, convertissez la valeur en kilo-octet en multipliant le nombre par 1024. Par exemple, spécifiez 1536 Ko au lieu de 1,5 MB (1,5 x 1024 = 1536).

  • MAXSIZE { max_size| UNLIMITED }
    Taille maximale que peut atteindre le fichier.

    • max_size
      Taille maximale du fichier. Les indications Ko, Mo, Go et To peuvent être utilisées pour indiquer qu'il s'agit de kilo-octets, mégaoctets, gigaoctets ou téraoctets. La taille est exprimée par défaut en mégaoctets. Précisez un nombre entier sans aucune décimale. Si l'option max_size n'est pas spécifiée, la taille du fichier augmente jusqu'à ce que le disque soit saturé.

    • UNLIMITED
      Précise que la taille du fichier peut croître jusqu'à ce que le disque soit saturé. Dans SQL Server, un fichier journal spécifié avec une croissance illimitée a une taille maximale de 2 To et un fichier de données une taille maximale de 16 To. Aucune taille maximale n'est définie lorsque cette option est spécifiée pour un conteneur FILESTREAM. Il continue à grandir jusqu'à ce que le disque soit saturé.

  • FILEGROWTH growth_increment
    Spécifie l'incrément de croissance automatique du fichier. Le paramètre FILEGROWTH d'un fichier ne peut dépasser le paramètre MAXSIZE. FILEGROWTH ne s'applique pas aux groupes de fichiers FILESTREAM.

    • growth_increment
      Quantité d'espace ajoutée au fichier chaque fois qu'un espace supplémentaire s'avère nécessaire.

      La valeur peut être exprimée en Mo, Ko, Go, To ou pourcentage (%). Si un nombre est mentionné sans préciser Mo, Ko ou %, la valeur par défaut est Mo. Lorsque % est spécifié, la taille de l'incrément de croissance est le pourcentage choisi de la taille du fichier au moment où l'incrémentation a lieu. La taille spécifiée est arrondie à la valeur multiple de 64 Ko la plus proche.

      Une valeur 0 indique que la croissance automatique est désactivée et qu'aucun espace supplémentaire n'est autorisé.

      Si vous ne précisez pas FILEGROWTH, la valeur par défaut est de 1 Mo pour les fichiers de données et de 10 % pour les fichiers journaux et la valeur minimale est de 64 Ko.

      [!REMARQUE]

      À compter de SQL Server 2005, l'incrément de croissance par défaut pour les fichiers de données est passé de 10 % à 1 Mo. La valeur par défaut de 10 % est maintenue pour les fichiers journaux.

  • OFFLINE
    Place le fichier en mode hors connexion et rend tous les objets du groupe de fichiers inaccessibles.

    AttentionAttention

    Utilisez cette option uniquement lorsque le fichier est endommagé et peut être restauré. Un fichier configuré avec l'option OFFLINE ne peut être remis en ligne qu'en le restaurant à partir d'une sauvegarde. Pour plus d'informations sur la restauration d'un seul fichier, consultez RESTORE (Transact-SQL).

[!REMARQUE]

Les options <filespec> ne sont pas disponibles dans une base de données à relation contenant-contenu.

<add_or_modify_filegroups>::=

Ajoute, modifie ou supprime un groupe de fichiers à partir de la base de données.

  • ADD FILEGROUP filegroup_name
    Ajoute un groupe de fichiers à la base de données.

  • CONTAINS FILESTREAM
    Spécifie que le groupe de fichiers stocke des objets BLOB (binary large objects) FILESTREAM dans le système de fichiers.

  • REMOVE FILEGROUP filegroup_name
    Supprime un groupe de fichiers de la base de données. Le groupe de fichiers ne peut pas être supprimé s'il n'est pas vide. Commencez par supprimer tous les fichiers du groupe. Pour plus d'informations, consultez « REMOVE FILE logical_file_name », plus haut dans cette rubrique.

    [!REMARQUE]

    Sauf dans le cas où le garbage collector FILESTREAM a supprimé tous les fichiers d'un conteneur FILESTREAM, l'opération ALTER DATABASE REMOVE FILE pour supprimer un conteneur FILESTREAM échoue et retourne une erreur. Consultez la section « Supprimer le conteneur FILESTREAM » dans les Notes dans la suite de cette rubrique.

  • MODIFY FILEGROUP filegroup_name { <filegroup_updatability_option> | DEFAULT | NAME **=**new_filegroup_name }
    Modifie le groupe de fichiers en lui affectant l'état READ_ONLY ou READ_WRITE, en sélectionnant le groupe de fichiers comme groupe par défaut pour la base de données ou en modifiant le nom du groupe de fichiers.

    • <filegroup_updatability_option>
      Définit la propriété read-only ou read/write du groupe de fichiers.

    • DEFAULT
      Modifie le groupe de fichiers par défaut de la base de données pour filegroup_name. Dans une base de données, un seul groupe de fichiers peut être choisi comme groupe de fichiers par défaut. Pour plus d'informations, consultez Groupes de fichiers et fichiers de base de données.

    • NAME = new_filegroup_name
      Modifie le nom du groupe de fichiers pour new_filegroup_name.

<filegroup_updatability_option>::=

Définit la propriété read-only ou read/write du groupe de fichiers.

  • READ_ONLY | READONLY
    Précise que le groupe de fichiers est en mode lecture seule. La mise à jour des objets n'est pas autorisée. Le groupe de fichiers principal ne peut pas être en mode lecture seule. Pour modifier cet état, vous devez bénéficier d'un accès exclusif à la base de données. Pour plus d'informations, consultez la clause SINGLE_USER.

    Étant donné qu'une base de données en lecture seule interdit la modification des données :

    • La récupération automatique est ignorée au démarrage du système.

    • Le compactage de la base de données est impossible.

    • Tout verrouillage est impossible dans les bases de données en lecture seule, ce qui améliore les performances des requêtes.

    [!REMARQUE]

    Le mot clé READONLY sera supprimé de la prochaine version de Microsoft SQL Server. Évitez d'utiliser READONLY dans le développement de nouvelles applications et prévoyez de modifier celles qui utilisent actuellement READONLY. Utilisez à la place READ_ONLY.

  • READ_WRITE | READWRITE
    Spécifie que le groupe a l'option READ_WRITE. Les objets du groupe de fichiers peuvent être mis à jour. Pour modifier cet état, vous devez bénéficier d'un accès exclusif à la base de données. Pour plus d'informations, consultez la clause SINGLE_USER.

    [!REMARQUE]

    Le mot clé READWRITE sera supprimé de la prochaine version de Microsoft SQL Server. Évitez d'utiliser READWRITE dans le développement de nouvelles applications et prévoyez de modifier celles qui utilisent actuellement READWRITE. Utilisez à la place READ_WRITE.

Vous pouvez déterminer l'état de ces options en consultant la colonne is_read_only de l'affichage catalogue sys.databases ou la propriété Updateability de la fonction DATABASEPROPERTYEX.

Notes

Pour diminuer la taille d'une base de données, utilisez DBCC SHRINKDATABASE.

Vous ne pouvez pas ajouter ou supprimer de fichier tant qu'une instruction BACKUP est en cours d'exécution.

Un maximum de 32 767 fichiers et 32 767 groupes de fichiers peut être spécifié pour chaque base de données.

Dans SQL Server 2005 ou version ultérieure, l'état d'un fichier de base de données (par exemple, en ligne ou hors connexion) est préservé indépendamment de l'état de la base de données. Pour plus d'informations, consultez États des fichiers. L'état des fichiers dans un groupe de fichiers détermine la disponibilité de tout le groupe de fichiers. Pour qu'un groupe de fichiers soit disponible, tous les fichiers du groupe doivent être en ligne. Si un groupe de fichiers est hors connexion, toute tentative d'accès au groupe par une instruction SQL échoue avec une erreur. Lorsque vous créez des plans de requête pour les instructions SELECT, l'optimiseur de requête évite les index non-cluster et les vues indexées qui résident dans les groupes de fichiers hors connexion. Cela permet aux instructions de s'exécuter correctement. Toutefois, si le groupe de fichiers hors connexion contient le segment de mémoire ou l'index cluster de la table cible, les instructions SELECT échouent. Par ailleurs, toute instruction INSERT, UPDATE ou DELETE qui modifie une table avec un index dans un groupe de fichiers hors connexion échoue.

Déplacement de fichiers

Dans SQL Server 2005 ou version ultérieure, vous pouvez déplacer des données système ou définies par l'utilisateur ainsi que des fichiers journaux en spécifiant le nouvel emplacement dans FILENAME. Cela peut être utile dans les cas suivants :

  • Récupération après défaillance. Par exemple, la base de données est en mode suspect ou arrêtée à cause d'une défaillance matérielle

  • Déplacement prévu

  • Déplacement en vue d'une maintenance de disque planifiée

Pour plus d'informations, consultez Déplacer des fichiers de bases de données.

Initialisation des fichiers

Par défaut, les fichiers de données et journaux sont initialisés en remplissant les fichiers avec des zéros lorsque vous effectuez l'une des opérations suivantes :

  • création d'une base de données ;

  • ajout de fichiers à une base de données existante ;

  • augmentation de la taille d'un fichier existant ;

  • restauration d'une base de données ou d'un groupe de fichiers.

Les fichiers de données peuvent être initialisés de manière instantanée. Dès lors, l'exécution de ces opérations de fichiers est très rapide.

Suppression d'un conteneur FILESTREAM

Même si le conteneur FILESTREAM a peut-être été vidé à l'aide de l'opération DBCC SHRINKFILE, la base de données peut encore peut-être conserver des références aux fichiers supprimés pour des raisons de maintenance du système. sp_filestream_force_garbage_collection (Transact-SQL) exécutera le garbage collector FILESTREAM pour supprimer ces fichiers lorsque cela pourra se faire en toute sécurité. Sauf dans le cas où le garbage collector FILESTREAM a supprimé tous les fichiers d'un conteneur FILESTREAM, l'opération ALTER DATABASEREMOVE FILE ne parviendra pas à supprimer un conteneur FILESTREAM et retournera une erreur. Le processus suivant est recommandé pour supprimer un conteneur FILESTREAM.

  1. Exécutez DBCC SHRINKFILE (Transact-SQL) avec l'option EMPTYFILE pour déplacer le contenu actif de ce conteneur vers d'autres conteneurs.

  2. Assurez-vous que les sauvegardes de journal ont été effectuées, en mode de récupération FULL ou BULK_LOGGED.

  3. Assurez-vous que le travail du lecteur du journal de la réplication a été exécuté, le cas échéant.

  4. Exécutez sp_filestream_force_garbage_collection (Transact-SQL) pour forcer le garbage collector à supprimer tous les fichiers qui ne sont plus nécessaires dans ce conteneur.

  5. Exécutez ALTER DATABASE avec l'option REMOVE FILE pour supprimer ce conteneur.

  6. Répétez encore une fois les étapes 2 à 4 pour terminer le garbage collection.

  7. Utilisez ALTER base de données...REMOVE FILE pour supprimer ce conteneur.

Exemples

A.Ajout d'un fichier à une base de données

L'exemple suivant ajoute un fichier de données de 5 Mo à la base de données AdventureWorks2012.

USE master;
GO
ALTER DATABASE AdventureWorks2012 
ADD FILE 
(
    NAME = Test1dat2,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat2.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
);
GO

B.Ajout d'un groupe de deux fichiers à une base de données

L'exemple suivant crée le groupe de fichiers Test1FG1 dans la base de données AdventureWorks2012 et ajoute deux fichiers de 5 Mo au groupe de fichiers.

USE master
GO
ALTER DATABASE AdventureWorks2012
ADD FILEGROUP Test1FG1;
GO
ALTER DATABASE AdventureWorks2012 
ADD FILE 
(
    NAME = test1dat3,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat3.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
),
(
    NAME = test1dat4,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat4.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
)
TO FILEGROUP Test1FG1;
GO

C.Ajout de deux fichiers journaux à une base de données

L'exemple suivant ajoute deux fichiers journaux de 5 Mo à la base de données AdventureWorks2012.

USE master;
GO
ALTER DATABASE AdventureWorks2012 
ADD LOG FILE 
(
    NAME = test1log2,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test2log.ldf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
),
(
    NAME = test1log3,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test3log.ldf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
);
GO

D.Suppression d'un fichier d'une base de données

L'exemple suivant supprime l'un des fichiers ajoutés dans l'exemple B.

USE master;
GO
ALTER DATABASE AdventureWorks2012
REMOVE FILE test1dat4;
GO

E.Modification d'un fichier

L'exemple suivant augmente la taille de l'un des fichiers ajoutés dans l'exemple B.

USE master;
GO
ALTER DATABASE AdventureWorks2012 
MODIFY FILE
    (NAME = test1dat3,
    SIZE = 20MB);
GO

F.Déplacement d'un fichier vers un nouvel emplacement

L'exemple suivant déplace le fichier Test1dat2 créé dans l'exemple A vers un nouveau répertoire.

[!REMARQUE]

Vous devez déplacer physiquement le fichier vers le nouveau répertoire avant d'exécuter cet exemple. Après quoi, arrêtez et démarrez l'instance de SQL Server ou mettez la base de données AdventureWorks2012 hors connexion (OFFLINE) puis remettez-la en ligne (ONLINE) pour implémenter la modification.

USE master;
GO
ALTER DATABASE AdventureWorks2012
MODIFY FILE
(
    NAME = Test1dat2,
    FILENAME = N'c:\t1dat2.ndf'
);
GO

G.Déplacement de tempdb vers un nouvel emplacement

L'exemple suivant déplace tempdb de son emplacement actuel vers un autre emplacement du disque. Étant donné que tempdb est recréée à chaque démarrage du service MSSQLSERVER, il n'est pas nécessaire de déplacer physiquement les fichiers de données et les fichiers journaux. Les fichiers sont créés lorsque le service est redémarré à l'étape 3. Tant que le service n'a pas été redémarré, tempdb continue à fonctionner dans son emplacement existant.

  1. Déterminez les noms de fichiers logiques de la base de données tempdb et leur emplacement actuel sur le disque.

    SELECT name, physical_name
    FROM sys.master_files
    WHERE database_id = DB_ID('tempdb');
    GO
    
  2. Modifiez l'emplacement de chaque fichier à l'aide de ALTER DATABASE.

    USE master;
    GO
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
    GO
    ALTER DATABASE  tempdb 
    MODIFY FILE (NAME = templog, FILENAME = 'E:\SQLData\templog.ldf');
    GO
    
  3. Arrêtez et redémarrez l'instance de SQL Server.

  4. Vérifiez que la modification des fichiers a bien eu lieu.

    SELECT name, physical_name
    FROM sys.master_files
    WHERE database_id = DB_ID('tempdb');
    
  5. Supprimez les fichiers empdb.mdf et templog.ldf de leur emplacement d'origine.

H.Configuration d'un groupe de fichiers comme groupe par défaut

L'exemple suivant configure le groupe de fichiers Test1FG1 créé dans l'exemple B comme groupe de fichiers par défaut. Ensuite, le groupe de fichiers par défaut est reconfiguré en groupe de fichiers PRIMARY. Notez que PRIMARY doit être délimité par des crochets ou des guillemets.

USE master;
GO
ALTER DATABASE AdventureWorks2012 
MODIFY FILEGROUP Test1FG1 DEFAULT;
GO
ALTER DATABASE AdventureWorks2012 
MODIFY FILEGROUP [PRIMARY] DEFAULT;
GO

I.Ajout d'un groupe de fichiers à l'aide d'ALTER DATABASE

L'exemple de code suivant ajoute un FILEGROUP qui contient la clause FILESTREAM à la base de données FileStreamPhotoDB.

--Create and add a FILEGROUP that CONTAINS the FILESTREAM clause to
--the FileStreamPhotoDB database.
ALTER DATABASE FileStreamPhotoDB
ADD FILEGROUP TodaysPhotoShoot
CONTAINS FILESTREAM
GO

--Add a file for storing database photos to FILEGROUP 
ALTER DATABASE FileStreamPhotoDB
ADD FILE
(
    NAME= 'PhotoShoot1',
    FILENAME = 'C:\Users\Administrator\Pictures\TodaysPhotoShoot.ndf'
)
TO FILEGROUP TodaysPhotoShoot
GO

Voir aussi

Référence

CREATE DATABASE (Transact-SQL)

DATABASEPROPERTYEX (Transact-SQL)

DROP DATABASE (Transact-SQL)

sp_spaceused (Transact-SQL)

sys.databases (Transact-SQL)

sys.database_files (Transact-SQL)

sys.data_spaces (Transact-SQL)

sys.filegroups (Transact-SQL)

sys.master_files (Transact-SQL)

DBCC SHRINKFILE (Transact-SQL)

sp_filestream_force_garbage_collection (Transact-SQL)

Concepts

Données blob (Binary Large Object) (SQL Server)