Tworzę scenariusz ładowania okna przesuwnego, a funkcje partycji z czasem zmienią swoje granice.
Utworzyłem niektóre funkcje partycji w moim projekcie bazy danych SQL Server Data Tools (SSDT) z pewnymi początkowymi granicami zakodowanymi na stałe.
Jednak wraz z upływem czasu i zmianami granic funkcji partycji przyszłe publikacje bazy danych SSDT cofną granice do pierwotnych.
Czy istnieje jakiś sposób, aby poradzić sobie z tym scenariuszem z wdziękiem, być może poprzez wyłączenie publikowania funkcji partycji?
Próbowałem zmienić właściwość Build Action funkcji partycji w SSDT, z domyślnej Build
na None
, ale potem projekt nie buduje się z powodu braku odniesienia w zależnych obiektach.
sql-server
gonsalu
źródło
źródło
Odpowiedzi:
Udało mi się znaleźć rozwiązanie mojego problemu - mam nadzieję, że to pomoże komuś innemu.
Aby uniknąć ponownego tworzenia funkcji partycji przez każdą publikację bazy danych, możesz zaznaczyć opcję Ignoruj schematy partycji w oknie dialogowym Zaawansowane ustawienia publikowania ( Zaawansowane ... przycisk w oknie dialogowym Publikowanie bazy danych).
Z opisu opcji (moje podkreślenie):
Jeśli jednak zdefiniowałeś partycjonowany obiekt (tabelę lub indeks) z kompresją strony lub wiersza, chociaż schematy partycji Ignoruj opcja nie odtwarza już funkcji partycji, obiekt partycjonowany i tak zostanie odtworzony.
Dzieje się tak, ponieważ partycjonowany obiekt jest skryptowany ze zdefiniowaną kompresją dla każdej partycji , a ponieważ obiekt ma inną liczbę partycji niż pierwotnie zdefiniowano, SSDT odtwarza obiekt po opublikowaniu. Np. (Sformatowany):
Aby tak się nie stało, możesz również zaznaczyć opcję Ignoruj opcje tabeli w tym samym oknie dialogowym Zaawansowane ustawienia publikowania - pamiętaj, że będziesz ignorować inne opcje, takie jak
ALLOW_ROW_LOCKS
iALLOW_PAGE_LOCKS
( odniesienie do opcji tabeli ).źródło
To nie jest dobra sytuacja. O ile wiem SSDT nie obsługuje tego. Najlepszym obejściem, jakie mogę wymyślić, jest użycie skryptu przedwdrożeniowego do przechowywania granic w tabeli, a następnie zmiana funkcji partycji przy użyciu tych wartości w skrypcie powdrożeniowym.
źródło