2012-08-11 65 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

相關問題