Vous obtiendrez l'erreur 7710 si vous essayez de diviser une partition dans SQL Server, mais que vous n'avez pas spécifié de groupe de fichiers "à utiliser ensuite".
L'erreur entière ressemble à ceci :
Msg 7710, Level 16, State 1, Line 1 Warning: The partition scheme 'MyPartitionScheme' does not have any next used filegroup. Partition scheme has not been changed.
Où MyPartitionScheme
est le nom du schéma de partition en question.
Si vous obtenez cette erreur, vous devrez ajouter un groupe de fichiers "prochain utilisé" en utilisant le ALTER PARTITION SCHEME
déclaration.
Le problème
Voici un rapide aperçu du problème.
Lorsque j'essaie de diviser une partition :
ALTER PARTITION FUNCTION MoviesPartitionFunction()
SPLIT RANGE (500);
J'obtiens l'erreur suivante :
Msg 7710, Level 16, State 1, Line 1 Warning: The partition scheme 'MoviesPartitionScheme' does not have any next used filegroup. Partition scheme has not been changed.
C'est parce que je n'ai pas spécifié de groupe de fichiers "prochain utilisé" pour MoviesPartitionScheme
, qui dans mon cas, est le schéma de partition que j'ai utilisé pour appliquer la MoviesPartitionFunction
aux groupes de fichiers à utiliser par les partitions.
Voici comment j'ai créé ma fonction de partition et mon schéma de partition d'origine :
CREATE PARTITION FUNCTION MoviesPartitionFunction (int)
AS RANGE LEFT FOR VALUES (-1, 100, 10000);
CREATE PARTITION SCHEME MoviesPartitionScheme
AS PARTITION MoviesPartitionFunction
TO (MoviesFg1, MoviesFg2, MoviesFg3, MoviesFg4);
Il a donc actuellement quatre partitions et j'essaie d'en ajouter une cinquième.
La solution
Nous pouvons résoudre le problème ci-dessus en ajoutant un groupe de fichiers "prochain utilisé" pour le schéma de partition.
Nous pouvons utiliser un groupe de fichiers existant ou en créer un nouveau.
Créons-en une nouvelle et essayons à nouveau de scinder la partition :
ALTER DATABASE Test ADD FILEGROUP MoviesFg5;
ALTER DATABASE Test
ADD FILE
(
NAME = MoviesFg5dat,
FILENAME = '/var/opt/mssql/data/MoviesFg5dat.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP MoviesFg5;
ALTER PARTITION SCHEME MoviesPartitionScheme
NEXT USED MoviesFg5;
ALTER PARTITION FUNCTION MoviesPartitionFunction()
SPLIT RANGE (500);
Résultat :
Commands completed successfully.
Excellent, donc cela a fonctionné, et nous n'obtenons plus l'erreur.