如何確定TSQL錯誤是運行時錯誤還是解析錯誤?例如,當我執行如何確定TSQL錯誤是運行時錯誤還是解析錯誤?
asdf
我會得到
消息2812,級別16,狀態62,行1找不到存儲過程 'ASDF'。
當我執行
asdf sdf asdf
我會得到
消息102,級別15,狀態1,行1附近有語法錯誤 'ASDF'。
如何確定TSQL錯誤是運行時錯誤還是解析錯誤?例如,當我執行如何確定TSQL錯誤是運行時錯誤還是解析錯誤?
asdf
我會得到
消息2812,級別16,狀態62,行1找不到存儲過程 'ASDF'。
當我執行
asdf sdf asdf
我會得到
消息102,級別15,狀態1,行1附近有語法錯誤 'ASDF'。
您可以使用該級別來區分不同類型的錯誤。有關錯誤級別的描述,請參閱此處:Database Engine Error Severities。
如果您需要,還可以使用sys.messages
中列出的錯誤消息,但請記住,大約有9000種不同的可能消息。
具有分析錯誤和綁定錯誤的批處理不會生成執行計劃。具有運行時錯誤的批處理將會。不知道是否有任何其他方式告訴錯誤的來源。
/*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
爲什麼這被接受?它不回答「如何確定TSQL錯誤是運行時錯誤還是解析錯誤?」這個問題。在所有。級別只是錯誤的嚴重程度。 – 2011-03-15 09:09:56