/ / ¿Cómo se calculan los intervalos de programación del sistema de SQL Server? - sql, servidor-sql

¿Cómo se calculan los intervalos de programación del sistema SQL Server? - sql, servidor sql

Esta mesa: sysschedules

Si el freq_type es 8 (semanal) entonces freq_interval es 1,2,4,8,16,32,64 para Su, M, T, W, Th, F, S.

Pero cuando freq_type es 32 (pariente mensual) entonces freq_interval es 1,2,3,4,5,6,7,8,9,10 para Do, M, T, W, Th, F, S, día de la semana, fin de semana.

¿Por qué es esto? ¿Se está produciendo algún tipo de cálculo para reducir la complejidad de la consulta?

¿Si es así, cómo? (Sry si sueno despistado, construir un sistema de eventos recurrentes está derritiendo mi cerebro)

Respuestas

6 para la respuesta № 1

Si freq_type es 8, entonces el trabajo puede ocurrir en uno o mas días, por lo que debe haber una forma de representar varios días en el freq_interval columna. Esto se hace asignando cada día una potencia de dos valores, por lo que se pueden sumar varios valores sin ambigüedades. P.ej. para algo que ocurre los lunes, miércoles y viernes, el valor sería 2 + 8 + 32 = 42. (Su pregunta tiene los valores incorrectos asignados a los días)

Si freq_type es 32, solo se puede seleccionar una opción: uno día de la semana, o día, día laborable o fin de semana. Dado que varios valores no poder combinarse, se puede utilizar una representación más simple.