sql >> Databasteknik >  >> RDS >> Sqlserver

Skillnad mellan kompileringsfel och körtidsfel i SQL Server?

kompileringsfel uppstår under processen att generera en exekveringsplan. Körtidsfel uppstår när planen genereras och exekveras.

Det enda sättet att skilja mellan de två är om en plan genereras AFAIK eller inte.

Exempel

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

De sista 2 ger exakt samma fel även om det ena är ett kompileringstidsfel och det andra ett körtidsfel.




  1. Beräknat fältvärde baserat på annan kolumn vid infogning

  2. AWS MySQL RDS vs AWS DynamoDB

  3. MySQL hur man får medelvärden till ett specifikt intervall

  4. är `date` ett giltigt mysql-kolumnnamn?