Sql 我的错误在哪一行?将数据类型nvarchar转换为数字时出错

Sql 我的错误在哪一行?将数据类型nvarchar转换为数字时出错,sql,sql-server,Sql,Sql Server,我有一个SQL查询,它有几百行代码 使用的查询工作正常,但查询基础表中的某些数据已更改 我现在收到以下错误消息 将数据类型nvarchar转换为数字时出错 如何确定脚本中数百行代码中的哪一行导致了错误 我有几十行可能引发错误的代码 我想我只需要注释掉所有可能导致问题的行,然后逐个取消注释,直到找到导致数据类型错误的行 这是否只是SQL Server 2014的一个限制,它只是告诉您“嘿,您的数百行代码中有一个错误”,而不是告诉您错误的实际行号(与其他错误类型一样) 它确实给了我一个行号,但它只指

我有一个SQL查询,它有几百行代码

使用的查询工作正常,但查询基础表中的某些数据已更改

我现在收到以下错误消息

将数据类型nvarchar转换为数字时出错

如何确定脚本中数百行代码中的哪一行导致了错误

我有几十行可能引发错误的代码

我想我只需要注释掉所有可能导致问题的行,然后逐个取消注释,直到找到导致数据类型错误的行

这是否只是SQL Server 2014的一个限制,它只是告诉您“嘿,您的数百行代码中有一个错误”,而不是告诉您错误的实际行号(与其他错误类型一样)


它确实给了我一个行号,但它只指向主Select语句行(因此基本上是第一行代码)…

如果这返回了任何记录,那么问题是您的数据,而不是您的脚本:

Select * 
from yourtable 
where isnumeric(yourfield) <> 1
选择*
从你的桌子上
其中是数字(您的字段)1

如果没有底层代码,就很难准确地知道是什么导致了错误。 我建议检查表数据是否包含无效数字,如果不是这样,则对中间数据(通过查询进行了一次或多次转换的数据)运行相同的测试

选择*作为无效数字
从桌子上
其中为数字(列)1

作为提示。这可能是由于一个数字被用作
+
的参数,因此该操作被视为加法而不是字符串串联。您可以将
+
运算符的所有用法更改为函数
concat()
SELECT * AS invalidNumerics
FROM table
WHERE isNumeric(column) <> 1