Estoy creando un escenario de carga de ventana deslizante y las funciones de partición cambiarán sus límites a lo largo del tiempo.
He creado algunas funciones de partición en mi proyecto de base de datos de SQL Server Data Tools (SSDT) con algunos límites iniciales codificados.
Sin embargo, a medida que pasa el tiempo y cambian los límites de las funciones de partición, las futuras publicaciones de la base de datos SSDT revertirán los límites a los originales.
¿Hay alguna forma de manejar este escenario con gracia, posiblemente deshabilitando la publicación de las funciones de partición?
Intenté cambiar la propiedad Build Action de las funciones de partición en SSDT, de la predeterminada Build
, a None
, pero luego el proyecto no se puede construir debido a una referencia faltante en los objetos dependientes.
fuente
Respuestas:
Pude encontrar una solución a mi problema, espero que esto ayude a alguien más.
Para evitar que cada publicación de la base de datos vuelva a crear la función de partición, puede marcar la opción Ignorar esquemas de partición en el cuadro de diálogo Configuración de publicación avanzada ( botón Avanzado ... en el cuadro de diálogo Publicar base de datos).
De la descripción de la opción (énfasis mío):
Sin embargo, si ha definido un objeto particionado (tabla o índice) con compresión de página o fila, aunque la opción Ignorar esquemas de partición ya no recrea la función de partición, el objeto particionado se volverá a crear de todos modos.
Esto sucede porque el objeto particionado se crea con una secuencia de comandos con la compresión definida por partición , y dado que el objeto tiene un número diferente de particiones de lo que se definió originalmente, SSDT recrea el objeto en la publicación. Por ejemplo (formateado):
Para que esto no suceda, también puede marcar la opción Ignorar opciones de tabla , en el mismo cuadro de diálogo Configuración de publicación avanzada , solo tenga en cuenta que ignorará otras opciones, como
ALLOW_ROW_LOCKS
yALLOW_PAGE_LOCKS
( referencia de las opciones de la tabla ).fuente
Ouch, esa no es una buena situación. Hasta donde sé, SSDT no es compatible con esto. La mejor solución que se me ocurre es usar una secuencia de comandos previa a la implementación para almacenar los límites en una tabla y luego alterar la función de partición utilizando esos valores en la secuencia de comandos posterior a la implementación.
fuente