SQL Server中的编译错误和运行时错误之间的区别?

时间:2011-12-02 12:20:43

标签: sql-server sql-server-2008 compilation compiler-errors runtime-error

SQL Server中的编译错误和运行时错误有什么区别?如何在SQL Server中区分这些错误?

1 个答案:

答案 0 :(得分:3)

在生成执行计划的过程中发生编译错误。生成并正在执行计划时会发生运行时错误。

区分两者的唯一方法是计划是否生成AFAIK。

实施例

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

最后2个引发完全相同的错误,即使一个是编译时错误而另一个是运行时错误。