SQLストアドプロシージャを呼び出すための新しいデータアクセスフレームワークを導入しました。レコードセットを返すストアドプロシージャを呼び出すと、そのストアドプロシージャが何らかの更新(挿入/更新/削除)も実行するという問題が発生しました。
コマンドオブジェクトをソースとして持つRecordsetオブジェクトのActiveConnectionプロパティを変更することはできません。
これに対する解決策は、ストアドプロシージャの先頭に「SETNOCOUNTON」を追加することです。これは問題なく機能し、もちろん、パフォーマンスの向上も宣伝されています。
開発者には、既存のストアドプロシージャを呼び出すコードを記述したい場合は、ストアドプロシージャ自体もリファクタリングしてを含める必要があることをお勧めしますSET NOCOUNT ON
。
しかし、これにより、すべてのストアドプロシージャを包括的に更新して、を含めることの潜在的な結果/リスクはどうなるのか、疑問に思いましたSET NOCOUNT ON
。これはどのようなシナリオでSPの機能を壊しますか?(SET NOCOUNTがONの場合でも、@@ ROWCOUNT関数が更新される場合)
いつものように、助けてください。