SQL Server中的编译错误和运行时错误有什么区别?如何在SQL Server中区分这些错误?
答案 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个引发完全相同的错误,即使一个是编译时错误而另一个是运行时错误。