none
ストアドプロシージャの記述の仕方について RRS feed

  • 質問

  • おはようございます。

     

    SQLServerの勉強を始めたばかりのものです。

     

    たとえば顧客の個人情報などの追加・変更を行う場合、今までAccessを使用していたときは、

    フォーム上の顧客IDが未入力の場合は、新規登録・ある場合は、更新処理というように一連のものとして

    プログラム上に処理を記述していたのですが、ストアドプロシージャを用いる場合は、

    追加と更新は別々に作成をしたほうが良いものなのでしょうか。

     

    それとも、顧客IDを変数として受け取り、ストアドプロシージャ内でIF文などを利用して

    新規追加か更新処理かを判断するようにして、ひとつのストアドプロシージャに

    記述をしても特に問題はないのでしょうか。

     

    わざわざ質問するような内容ではないと思うのですが、始めたばかりだからこそ確認しておきたいと

    思い、質問をいたしました。

     

    一般的なものでかまいませんので、ご教授いただけないでしょうか。

    どうか、よろしくお願いします。
    2007年10月5日 19:52

すべての返信

  • あまり回答になっていないかもしれまえんが、ケースバイケースでしょうね。私は両方のパターンを使います。通常は追加と変更は分けています。追加の場合は採番されたIDを、変更の場合はtimestamp値を返すことが多いですし、別々にしておいた方が管理しやすいと思っています。

    追加と変更を分けないケースは、既存のデータを読んでみなければ追加か変更かわからないような場合に用いています。この場合、追加と変更をプログラム側で判断するのではなく、ストアドプロシージャ内で判断させて一気に処理をした方が効率が良いからです。(もし、ストアドプロシージャで判断できないのであれば、プログラムでデータを読んであるかないか判断し、あらためて追加か更新のストアドプロシージャを実行することになり、効率が悪いですよね。)

    2007年10月9日 4:10