sql >> Base de Datos >  >> RDS >> Sqlserver

¿Diferencia entre errores de compilación y errores de tiempo de ejecución en SQL Server?

Los errores de compilación ocurren durante el proceso de generación de un plan de ejecución. Los errores de tiempo de ejecución ocurren cuando se genera el plan y se está ejecutando.

La única forma de distinguir entre los dos es si se genera o no un plan AFAIK.

Ejemplos

/*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

Los últimos 2 generan exactamente el mismo error, aunque uno es un error de tiempo de compilación y el otro un error de tiempo de ejecución.