我可以使用探查器找到错误的sql参数值吗?

时间:2012-08-11 17:56:38

标签: sql-server sql-server-2008 sql-server-2008-r2

我正在使用sql server 2008r2开发人员。我有一个存储过程,它向我从.NET / C#代码调用的db表中添加一行。它传递了大约70个参数(所有字段值)。每天执行约5,000次,持续数月,直到最近才出现问题。该表是基本的股票市场数据,每个符号每天都有自己的行。对于一个特定的股票代码,我收到了sql错误:

Error converting data type numeric to decimal

我只是手动向表中添加了一行,并逐列输入了通过存储过程传递的每个参数值,没有错误。我检查并重新检查了存储过程,以便在insert语句中正确配对参数/列,也没关系。

所以我的问题是...有没有办法使用探查器找到特定的错误参数(或者如果我正在咆哮错误的树,还有其他错误来源)?目前我只知道如何在sp执行之前查看所有参数值...但我已经可以在.NET端执行此操作。

1 个答案:

答案 0 :(得分:0)

从错误中我们可以理解它是一个数据类型问题。由于存在许多字段,因此很难找到错误的参数。 一旦我遇到类似的问题,我将解释我的approch。这可能会对你有帮助。

您可以尝试使用参数数组。通过单独的参数,您可以连接所有字段名称&昏迷的价值。 例如'field1name:field1value,field2ame:field2value,....' 并在程序中首先用','分割文本。再次使用':'拆分值。因此,您将获得字段名称和值。 现在循环中,您可以逐个更新每个字段。并检查它抛出错误的位置。

您可以检查此fnSplit函数,并对其进行修改以存储字段及其值。然后该函数将返回一个包含所有Fields和值的表 因此,您可以循环使用此表并逐个尝试更新。