Função delimitada no SQL para dividir dados entre ponto e vírgula

Eu tenho os dados abaixo.

Estou interessado apenas no programa B. Como faço para alterá-lo na tabela abaixo usando a sintaxe SQL?

Abaixo está minha sintaxe, mas ela não me dá o que eu quero.

SELECT
  SUBSTRING(Program, 0, CHARINDEX(';', Program)),
  SUBSTRING(
      SUBSTRING(Program, CHARINDEX(';', Program) + 1, LEN(Program)),
      0,
      CHARINDEX(';', SUBSTRING(Program, CHARINDEX(';', Program) + 1,
                               LEN(Program)))),
  REVERSE(SUBSTRING(REVERSE(Program), 0, CHARINDEX(';', REVERSE(Program)))),
  File_Count
FROM DataBase1
WHERE Program LIKE '%B%'

Obrigado rapazes por sua ajuda.

Adhi

questionAnswers(2)

yourAnswerToTheQuestion