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

Comment puis-je déplacer une table vers un autre groupe de fichiers dans MS SQL Server ?

Si vous souhaitez simplement déplacer la table vers un nouveau groupe de fichiers, vous devez recréer l'index clusterisé sur la table (après tout :l'index clusterisé est les données de la table) sur le nouveau groupe de fichiers souhaité.

Vous pouvez le faire avec par exemple :

CREATE CLUSTERED INDEX CIX_YourTable
   ON dbo.YourTable(YourClusteringKeyFields)
   WITH DROP_EXISTING
   ON [filegroup_name]

ou si votre index clusterisé est unique :

CREATE UNIQUE CLUSTERED INDEX CIX_YourTable
   ON dbo.YourTable(YourClusteringKeyFields)
   WITH DROP_EXISTING
   ON [filegroup_name]

Cela crée un nouvel index clusterisé et supprime celui existant, et il crée le nouvel index clusterisé dans le groupe de fichiers que vous avez spécifié - et voilà, vos données de table ont été déplacées vers le nouveau groupe de fichiers.

Consultez la documentation MSDN sur CREATE INDEX pour plus de détails sur toutes les options disponibles que vous pourriez vouloir spécifier.

Cela ne traite bien sûr pas encore du partitionnement, mais c'est une toute autre histoire en soi...