Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Différence entre les erreurs de compilation et les erreurs d'exécution dans SQL Server ?

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.