Siempre especifique la lista de columnas en declaraciones de inserción, y en insert...select siempre debe especificarla dos veces, ambas en insert
cláusula y en el select
cláusula.
Además, SQL Server generará un error si usa set identity_insert on
sin especificar explícitamente la lista de columnas en insert
cláusula, por lo que incluso si obtuvo todas las columnas en el orden correcto, todavía obtendría un error en este caso.
Para obtener más información, lea Malos hábitos para dejar:SELECCIONAR o INSERTAR sin una lista de columnas al que Shnugo se vinculó en su comentario.