ntervalos de data emergente no SQL Server

Tenho os seguintes dados:

StartDate   |  EndDate
-------------------------
1982.03.02  |  1982.09.30 
1982.10.01  |  1985.01.17 
1985.06.26  |  1985.07.26 
1985.07.30  |  1991.12.31 
1992.01.01  |  1995.12.31 
1996.01.01  |  2004.05.31 
2004.06.05  |  2006.01.31 
2006.02.01  |  2011.05.20              

Preciso mesclar todos os intervalos adjacentes (a data de início e de término estão incluídos nos intervalos, portanto, um intervalo que termina em 2003.05.06 é adjacente ao intervalo que começa em 2003.05.07); portanto, nesse caso, o resultado resultante o conjunto deve ser:

StartDate   |  EndDate
-------------------------
1982.03.02  |  1985.01.17 
1985.06.26  |  1985.07.26 
1985.07.30  |  2004.05.31 
2004.06.05  |  2011.05.20              

Para mim, a maneira óbvia de fazer isso é iterar o conjunto com um cursor e construir um conjunto de resultados linha por linha. No entanto, essa funcionalidade estará dentro de um código que pode ser chamado milhares de vezes em um dia, em um servidor com carga pesada, portanto, prefiro não ter nenhum problema de desempenho. Qualquer conjunto de dados é pequeno (no máximo 20 linhas) e o intervalo de dados é grande; portanto, qualquer solução que gere todas as datas em um intervalo é inviáve

Existe uma maneira melhor de não ver?

ódigo de inicialização (da resposta de Damien

CREATE TABLE Periods (
    StartDate datetime NOT NULL CONSTRAINT PK_Periods PRIMARY KEY CLUSTERED,
    EndDate datetime NOT NULL
)

INSERT INTO Periods(StartDate,EndDate)
SELECT '19820302', '19820930'
UNION ALL SELECT '19821001', '19850117'
UNION ALL SELECT '19850626', '19850726'
UNION ALL SELECT '19850730', '19911231'
UNION ALL SELECT '19920101', '19951231'
UNION ALL SELECT '19960101', '20040531'
UNION ALL SELECT '20040605', '20060131'
UNION ALL SELECT '20060201', '20110520'

questionAnswers(7)

yourAnswerToTheQuestion