Du får fejl 7710, hvis du forsøger at opdele en partition i SQL Server, men du ikke har angivet en "næste brugt" filgruppe.
Hele fejlen ser sådan her ud:
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.
Hvor MyPartitionScheme
er navnet på det pågældende partitionsskema.
Hvis du får denne fejl, skal du tilføje en "næste brugt" filgruppe ved hjælp af ALTER PARTITION SCHEME
erklæring.
Problemet
Her er en hurtig gennemgang af problemet.
Når jeg prøver at opdele en partition:
ALTER PARTITION FUNCTION MoviesPartitionFunction()
SPLIT RANGE (500);
Jeg får følgende fejlmeddelelse:
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.
Dette skyldes, at jeg ikke har angivet en "næste brugt" filgruppe for MoviesPartitionScheme
, som i mit tilfælde er det partitionsskema, som jeg brugte til at anvende MoviesPartitionFunction
til filgrupperne, der skal bruges af partitionerne.
Sådan oprettede jeg min originale partitionsfunktion og partitionsskema:
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);
Så det har i øjeblikket fire partitioner, og jeg forsøger at tilføje en femte.
Løsningen
Vi kan løse ovenstående problem ved at tilføje en "næste brugt" filgruppe til partitionsskemaet.
Vi kan bruge en eksisterende filgruppe eller oprette en ny.
Lad os oprette en ny og prøve at opdele partitionen igen:
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);
Resultat:
Commands completed successfully.
Udmærket, så det virkede, og vi får ikke længere fejlen.