如何解释此 SQL 服务器错误消息
How to interpret this SQL Server error message
我正在从 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
是什么意思?
谢谢!
edit:请注意,我对帮助解决问题不感兴趣(它已经解决了)。我只是想要一个关于如何解释 'line 80' 和 'Batch Start Line 2' 的明确指南,以便下次我立即知道去哪里看。
关于Line n
N
它是指对象的行数,考虑到它里面或者它的主体之前的任何空格。
示例 1
假设在 SSMS
中单击 New Query 按钮后,下一个是 SQLQuery window
1. Create proc spTest1
2. As
3. Begin
4. Select 1/0
5. End
执行spTest1
后,您将收到下一条消息
Msg 8134, Level 16, State 1, Procedure spTest1, Line 4
示例 2
假设在 SSMS
中单击 New Query 按钮后,下一个是 SQLQuery window
1.
2.
3.
4.
5.
6. Create proc spTest2
7. As
8. Begin
9. Select 1/0
10. End
执行spTest2
后,您将收到下一条消息
Msg 8134, Level 16, State 1, Procedure spTest2, Line 9
结论如何得到准确的数字
要获得准确的数字,请使用系统存储过程 sp_helptext
作为下一个
Exec sp_helptext spName
使用 Alter 过程 查看存储过程的代码时,错误行来自 BEGIN 命令,因为错误发生在过程中,而不是 改变过程命令
- 开始 = 第 0 行
- 下一行(程序的实际开始 = 1
- 等
批处理行 2 表示第二批语句 - 这意味着您在过程中某处有一个 GO
,这是在第二组语句 (http://sqlhints.com/tag/examples-of-sql-go-statement/) 中,第一组出现在 GO
之前
我正在从 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
是什么意思?
谢谢!
edit:请注意,我对帮助解决问题不感兴趣(它已经解决了)。我只是想要一个关于如何解释 'line 80' 和 'Batch Start Line 2' 的明确指南,以便下次我立即知道去哪里看。
关于Line n
N
它是指对象的行数,考虑到它里面或者它的主体之前的任何空格。
示例 1
假设在 SSMS
1. Create proc spTest1
2. As
3. Begin
4. Select 1/0
5. End
执行spTest1
后,您将收到下一条消息
Msg 8134, Level 16, State 1, Procedure spTest1, Line 4
示例 2
假设在 SSMS
1.
2.
3.
4.
5.
6. Create proc spTest2
7. As
8. Begin
9. Select 1/0
10. End
执行spTest2
后,您将收到下一条消息
Msg 8134, Level 16, State 1, Procedure spTest2, Line 9
结论如何得到准确的数字
要获得准确的数字,请使用系统存储过程 sp_helptext
作为下一个
Exec sp_helptext spName
使用 Alter 过程 查看存储过程的代码时,错误行来自 BEGIN 命令,因为错误发生在过程中,而不是 改变过程命令
- 开始 = 第 0 行
- 下一行(程序的实际开始 = 1
- 等
批处理行 2 表示第二批语句 - 这意味着您在过程中某处有一个 GO
,这是在第二组语句 (http://sqlhints.com/tag/examples-of-sql-go-statement/) 中,第一组出现在 GO