Como dividir uma coluna em duas colunas no SQL Server

Tenho uma pequena pergunta sobre o SQL Server, por favor, diga-me como resolver este problema

Mesa:emp

   id    name
  ---------------
   1    abc_rao
   2    nani
   3    hari_babu
   4    kalibabu
   5    ab_tan

Com base nessa tabela, quero saída como abaixo

   id   firstname   lastname
   1      abc       rao
   2      nani      nothing
   3      hari      babu
   4      kalibabu  nothing
   5      ab        tan

e tentei assim:

select 
    SUBSTRING(name, 1, CHARINDEX('_', name) - 1) as firstname , 
    SUBSTRING(name, CHARINDEX('_', name) + 1, LEN(name)) as lastname 
from emp

mas não estou obtendo exatamente o resultado esperado.

Em vez disso, estou recebendo um erro:

Mensagem 537, nível 16, estado 2, linha 3
Parâmetro de comprimento inválido passado para a função LEFT ou SUBSTRING.

Por favor, diga-me como resolver isso

Problema usando a consulta no SQL Server

questionAnswers(4)

yourAnswerToTheQuestion