Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да коригирате „Схемата на дяловете „...“ няма следваща използвана файлова група“ в SQL Server

Ще получите грешка 7710, ако се опитате да разделите дял в SQL Server, но не сте посочили „следваща използвана“ файлова група.

Цялата грешка изглежда така:

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.

Където MyPartitionScheme е името на въпросната схема за дялове.

Ако получите тази грешка, ще трябва да добавите „следваща използвана“ файлова група, като използвате ALTER PARTITION SCHEME изявление.

Проблемът

Ето бърз преглед на проблема.

Когато се опитам да разделя дял:

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

Получавам следната грешка:

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.

Това е така, защото не съм посочил „следваща използвана“ файлова група за MoviesPartitionScheme , което в моя случай е схемата за дялове, която използвах за прилагане на MoviesPartitionFunction към файловите групи, които да се използват от дяловете.

Ето как създадох оригиналната си функция за дялове и схема на дялове:

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

Така че в момента има четири дяла и аз се опитвам да добавя пети.

Решението

Можем да разрешим горния проблем, като добавим „следваща използвана“ файлова група за схемата на дяловете.

Можем да използваме съществуваща файлова група или да създадем нова.

Нека създадем нов и се опитаме да разделим дяла отново:

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

Резултат:

Commands completed successfully.

Отлично, така че работи и вече не получаваме грешката.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Справяне с грешки с висока сериозност в SQL Server

  2. SQL Server тригери:DML тригери

  3. Копирайте данните в друга таблица

  4. T-SQL условна поръчка по

  5. Как да добавите или пуснете колона с помощта на GUI в SQL Server - SQL Server / T-SQL Урок, част 39