Je crée un scénario de chargement de fenêtre coulissante et les fonctions de partition changeront leurs limites au fil du temps.
J'ai créé des fonctions de partition dans mon projet de base de données SQL Server Data Tools (SSDT) avec des limites initiales codées en dur.
Cependant, au fur et à mesure que le temps passe et que les limites des fonctions de partition changent, les futures publications de la base de données SSDT reviendront aux limites d'origine.
Existe-t-il un moyen de gérer ce scénario avec élégance, éventuellement en désactivant la publication des fonctions de partition?
J'ai essayé de modifier la propriété Build Action des fonctions de partition dans SSDT, par défaut Build
, en None
, mais le projet ne parvient pas à se construire en raison d'une référence manquante dans les objets dépendants.
la source
Réponses:
J'ai pu trouver une solution à mon problème - j'espère que cela aide quelqu'un d'autre.
Pour éviter que chaque publication de base de données ne recrée la fonction de partition, vous pouvez cocher l' option Ignorer les schémas de partition dans la boîte de dialogue Paramètres de publication avancés ( bouton Avancé ... dans la boîte de dialogue Publication de base de données).
D'après la description de l'option (soulignement le mien):
Cependant, si vous avez défini un objet partitionné (table ou index) avec une compression de page ou de ligne, bien que l' option Ignorer les schémas de partition ne recrée plus la fonction de partition, l'objet partitionné sera quand même recréé.
Cela se produit car l'objet partitionné est scripté avec la compression définie par partition , et puisque l'objet a un nombre de partitions différent de celui initialement défini, SSDT recrée l'objet lors de la publication. Par exemple (formaté):
Pour que cela ne se produise pas, vous pouvez également cocher l' option Ignorer les options de table , dans la même boîte de dialogue Paramètres de publication avancés - gardez à l'esprit que vous ignorerez d'autres options, telles que
ALLOW_ROW_LOCKS
etALLOW_PAGE_LOCKS
( référence des options de table ).la source
Aïe, ce n'est pas une bonne situation. Autant que je sache, SSDT ne prend pas en charge cela. La meilleure solution de contournement à laquelle je peux penser est d'utiliser un script de pré-déploiement pour stocker les limites dans une table, puis de modifier la fonction de partition en utilisant ces valeurs dans le script de post-déploiement.
la source