Poiché questo è SQL Server 2008, non puoi utilizzare EOMonth (che è stato introdotto nella versione 2012).
Devi aggiungere alcune date e differenze di data:
SELECT DATEDIFF(DAY,
GETDATE(),
DATEADD(MONTH,
1,
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE())
)
) - 1
spiegazioni:DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE())
ottiene il primo giorno del mese corrente, il wrapping DATEADD
aggiunge un mese e il wrapping DATEDIFF
restituisce il numero di giorni tra la data corrente e la prima data del mese successivo. Questo è il motivo per cui devi sottrarre 1 per ottenere il numero corretto di giorni.