Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Diferença entre erros de compilação e erros de tempo de execução no SQL Server?


erros de compilação ocorrem durante o processo de geração de um plano de execução. Erros de tempo de execução ocorrem quando o plano é gerado e está sendo executado.

A única maneira de distinguir entre os dois é se um plano AFAIK é gerado ou não.

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

Os últimos 2 geram exatamente o mesmo erro, embora um seja um erro de tempo de compilação e o outro um erro de tempo de execução.