【发布时间】:2011-03-15 07:55:07
【问题描述】:
如何判断一个TSQL错误是运行时错误还是解析错误?例如,当我执行时
asdf
我会得到
消息 2812,级别 16,状态 62,第 1 行找不到存储过程 'asdf'。
当我执行时
asdf sdf asdf
我会得到
消息 102,级别 15,状态 1,第 1 行 'asdf' 附近的语法不正确。
【问题讨论】:
标签: sql sql-server tsql
如何判断一个TSQL错误是运行时错误还是解析错误?例如,当我执行时
asdf
我会得到
消息 2812,级别 16,状态 62,第 1 行找不到存储过程 'asdf'。
当我执行时
asdf sdf asdf
我会得到
消息 102,级别 15,状态 1,第 1 行 'asdf' 附近的语法不正确。
【问题讨论】:
标签: sql sql-server tsql
带有解析错误和绑定错误的批次不会生成执行计划。具有运行时错误的批次将。不确定是否有任何其他方式可以告诉错误的来源。
/*Parse Error*/
SELEC * FROM master..spt_values
GO
/*Bind Error*/
SELECT * FROM master..spt_values_
GO
/*Runtime Error*/
SELECT 1/high FROM master..spt_values
【讨论】:
您可以使用级别来区分不同类型的错误。有关错误级别的说明,请参阅此:Database Engine Error Severities。
如果需要,您还可以使用sys.messages 中列出的错误消息,但请记住,可能有大约 9000 条不同的消息。
【讨论】: