ошибки компиляции возникают в процессе генерации плана выполнения. Ошибки времени выполнения возникают при создании и выполнении плана.
Единственный способ различения этих двух типов заключается в том, генерируется ли план AFAIK.
Примеры
/*Parse Error*/
SELEC * FROM master..spt_values
GO
/*Bind Error*/
SELECT * FROM master..spt_values_
GO
/*Compile time - constant folding error*/
SELECT LOG(0)
FROM master..spt_values
GO
/*Runtime Error*/
DECLARE @Val int = 0
SELECT LOG(@Val)
FROM master..spt_values
Последние 2 вызывают точно такую же ошибку, даже если одна ошибка времени компиляции, а другая ошибка времени выполнения.