Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak naprawić „Schemat partycji ‚…’ nie ma żadnej następnej używanej grupy plików” w SQL Server

Otrzymasz błąd 7710, jeśli spróbujesz podzielić partycję w SQL Server, ale nie określiłeś „następnej używanej” grupy plików.

Cały błąd wygląda mniej więcej tak:

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.

Gdzie MyPartitionScheme to nazwa danego schematu partycji.

Jeśli pojawi się ten błąd, musisz dodać "następną używaną" grupę plików przy użyciu ALTER PARTITION SCHEME oświadczenie.

Problem

Oto krótki opis problemu.

Kiedy próbuję podzielić partycję:

ALTER PARTITION FUNCTION MoviesPartitionFunction()
SPLIT RANGE (500);

Otrzymuję następujący błąd:

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.

Dzieje się tak, ponieważ nie określiłem grupy plików „następna używana” dla MoviesPartitionScheme , który w moim przypadku jest schematem partycji, którego użyłem do zastosowania funkcji MoviesPartitionFunction do grup plików, które mają być używane przez partycje.

Oto jak stworzyłem moją oryginalną funkcję partycji i schemat partycji:

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);

Więc obecnie ma cztery partycje i próbuję dodać piątą.

Rozwiązanie

Możemy rozwiązać powyższy problem, dodając grupę plików „następna używana” dla schematu partycji.

Możemy użyć istniejącej grupy plików lub stworzyć nową.

Utwórzmy nową i spróbujmy ponownie podzielić partycję:

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);

Wynik:

Commands completed successfully.

Świetnie, więc zadziałało i nie pojawia się już błąd.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń SCHEMABINDING z widoku w SQL Server

  2. Po usunięciu kaskady dla tabeli samoodnoszącej się

  3. Sekwencja a tożsamość

  4. Jak utworzyć alias typu danych zdefiniowanego przez użytkownika w SQL Server przy użyciu T-SQL

  5. Zwróć wszystkie możliwe kombinacje wartości w kolumnach w SQL