0

こんにちは、.net コードからストアド プロシージャを呼び出しています。ストアド プロシージャは、.net コードから送信されたパラメーターに基づいて特定の値を計算しています。特定の値の計算後、同じテーブルに対する 3 つの Insert ステートメントがストアド プロシージャの最後で実行されます。これらの挿入ステートメントがテーブルにレコードを挿入しないことがあります。ストアド プロシージャが適切に呼び出され、パラメーターも送信されることを徹底的に確認したため、これは非常に奇妙です。また、スレッドが 1 つしか実行されていない場合も、問題は発生しません。同じストアド プロシージャに並列にアクセスしている 9 つの複数のスレッドを実行している場合のみです。

いくつかの設定を確認する必要があるか、または不足しているものがあれば提案してください。

デッドロックが発生して挿入を妨げている可能性があるとは思えません。しかし、よくわかりません。また、テーブルのインデックスで allow_row_locks と allow_page_locks を確認しましたが、これらは「ON」に設定されています。

4

1 に答える 1

0

あなたのコードは挿入するのと同じ値を生成しているため、テーブルの制約に違反していると思います。

テーブルに主キーまたは一意のキーがありますか? おそらく、これを引き起こす可能性のある表のトリガーにいくつかのチェックがありますか?

于 2013-01-18T12:33:59.967 に答える