【发布时间】:2016-12-15 13:29:13
【问题描述】:
我正在从 SSMS 执行存储过程,我收到以下错误消息:
Msg 295, Level 16, State 3, Procedure spEdiCreateOrders, Line 80 [Batch Start Line 2]
Conversion failed when converting character string to smalldatetime data type.
我当然可以尝试并犯错,但我希望能够利用该消息,我对该消息有点困惑。
'line 80':从哪里开始?来自Alter procedure 的BEGIN 子句?或者它真的指的是我点击Modify时看到的第80行?
另外,Batch Start Line 2 是什么意思?
谢谢!
编辑:请注意,我对帮助解决问题不感兴趣(它已经解决了)。我只是想要一个关于如何解释 'line 80' 和 'Batch Start Line 2' 的明确指南,以便下次我立即知道在哪里看。
【问题讨论】:
-
我不确定您是否试图找出错误发生的原因,或者您是否清楚这一点并且您只需要有关消息及其上下文的帮助。如果它的错误可能是您传递给存储过程的参数值,您可以检查该值吗?
-
@Igor 未提供参数。我知道问题出在屏幕截图中从第 97 行开始的
INSERTstatement 中,但我会发现清楚地解释这些错误消息对我自己和其他人很有用。 -
使用
print,您可以将各种消息写入输出。在此之前是否有任何内容会打印一条自定义消息,如果出现错误,稍后会显示该消息,并使其看起来像是错误的一部分而不是错误的一部分? -
@Igor 我就是这么做的。我就是这样知道它在哪里坠毁的。
标签: sql-server ssms