我的SQL查询有几百行代码。
查询用于正常工作,但某些数据在基础表的查询中已更改。
我现在收到以下错误消息
将数据类型nvarchar转换为数字时出错。
如何确定脚本中数百行代码中的哪一行导致错误?
我有几十行代码可能会引发错误。
我想我只需要注释掉我怀疑可能导致问题的所有行,然后逐个取消注释,直到找到导致数据类型错误的那一行。
这仅仅是SQL Server 2014的一个限制,它只是告诉你“嘿,你的数百行代码中出现了错误”,而不是给出错误的实际行号(与其他错误一样)类型)。
它确实给了我一个行号,但它只是指向主Select语句行(所以基本上是第一行代码)....
答案 0 :(得分:2)
如果这返回任何记录,则问题是您的数据,而不是您的脚本:
Select *
from yourtable
where isnumeric(yourfield) <> 1
答案 1 :(得分:1)
如果没有底层代码,很难确切地知道导致错误的原因。 我建议检查是否有任何表数据包含无效数字,如果不是这种情况,则对中间数据(通过查询进行了一次或多次转换的数据)运行相同的测试。
SELECT * AS invalidNumerics
FROM table
WHERE isNumeric(column) <> 1