Saya sedang membuat skenario memuat jendela geser dan fungsi partisi akan mengubah batas-batas mereka dari waktu ke waktu.
Saya telah membuat beberapa fungsi partisi dalam proyek database SQL Server Data Tools (SSDT) saya dengan beberapa batasan awal hardcoded.
Namun, seiring berjalannya waktu dan batas fungsi partisi berubah, penerbitan basis data SSDT yang akan datang akan mengembalikan batas ke yang asli.
Apakah ada cara untuk menangani skenario ini dengan anggun, mungkin dengan menonaktifkan penerbitan fungsi partisi?
Saya sudah mencoba mengubah properti Build Action dari fungsi partisi di SSDT, dari default Build
, menjadi None
, tetapi kemudian proyek gagal dibangun karena referensi yang hilang pada objek yang bergantung.
sql-server
gonsalu
sumber
sumber
Jawaban:
Saya dapat menemukan solusi untuk masalah saya - semoga ini membantu orang lain.
Untuk menghindari setiap penerbitan basis data membuat ulang fungsi partisi, Anda dapat memeriksa opsi Abaikan skema partisi dalam dialog Pengaturan Penerbitan Lanjutan ( tombol ... Lanjutan dalam dialog Penerbitan Database).
Dari uraian opsi (penekanan milik saya):
Namun, jika Anda telah menetapkan objek yang dipartisi (tabel atau indeks) dengan kompresi halaman atau baris, meskipun opsi Abaikan skema partisi tidak lagi menciptakan kembali fungsi partisi, objek yang dipartisi akan tetap diciptakan kembali.
Ini terjadi karena objek yang dipartisi mendapat skrip dengan kompresi yang ditentukan per partisi , dan karena objek memiliki jumlah partisi yang berbeda dari yang awalnya ditetapkan, SSDT membuat ulang objek pada mempublikasikan. Misalnya (diformat):
Agar ini tidak terjadi, Anda juga dapat memeriksa opsi Abaikan tabel opsi, dalam dialog Pengaturan Penerbitan Lanjutan yang sama - perlu diingat bahwa Anda akan mengabaikan opsi lain, seperti
ALLOW_ROW_LOCKS
danALLOW_PAGE_LOCKS
( referensi opsi tabel ).sumber
Aduh, itu bukan situasi yang baik. Sejauh yang saya tahu SSDT tidak mendukung ini. Solusi terbaik yang dapat saya pikirkan adalah dengan menggunakan skrip Pra-Penempatan untuk menyimpan batas-batas dalam tabel dan kemudian mengubah fungsi partisi menggunakan nilai-nilai tersebut dalam skrip Pasca Penempatan.
sumber