des erreurs de compilation se produisent lors du processus de génération d'un plan d'exécution. Des erreurs d'exécution se produisent lorsque le plan est généré et en cours d'exécution.
La seule façon de faire la distinction entre les deux est de savoir si un plan est généré ou non AFAIK.
Exemples
/*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
Les 2 derniers génèrent exactement la même erreur même si l'une est une erreur de compilation et l'autre une erreur d'exécution.