2012-08-11 54 views
0

我正在使用sql server 2008r2开发人员。我有一个存储过程,将一行添加到我从.NET/C#代码调用的数据库表中。它传递了约70个参数(所有字段值)。这种方法每天执行约5000次,几个月,直到最近才出现问题。该表是基本的股票市场数据,每个符号每天都有自己的行。对于一个特定的股票代码,我得到了SQL错误:我可以使用profiler查找错误的sql参数值吗?

Error converting data type numeric to decimal 

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

所以我的问题......有没有办法找到使用探查器的特定错误参数(或其他错误来源,如果我吠叫错误的树)?目前我只知道如何在执行sp之前查看所有参数值......但是我可以在.NET端做到这一点。

回答

0

从错误我们可以了解它是一个数据类型的问题。由于有很多领域,所以很难找到错误的参数。 一旦我遇到类似的问题,我会解释我的接近。这可能会帮助你。

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

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

+0

对不起,延迟响应...谢谢。这似乎是唯一的方法。我可能只是在数据库中踢出这个符号并将其标记为“无效”。谢谢。 – StatsViaCsh 2012-08-14 18:51:20

相关问题