errori di compilazione si verificano durante il processo di generazione di un piano di esecuzione. Si verificano errori di runtime durante la generazione e l'esecuzione del piano.
L'unico modo per distinguere tra i due è se viene generato o meno un piano AFAIK.
Esempi
/*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
Gli ultimi 2 generano esattamente lo stesso errore anche se uno è un errore in fase di compilazione e l'altro un errore in fase di esecuzione.