私は関数とストアドプロシージャをかなり長い間学習してきましたが、なぜ、そしていつ関数やストアドプロシージャを使うべきなのかがわかりません。私には同じように見えるのですが、それは私が初心者だからかもしれません。
誰か理由を教えてくれませんか?
関数は計算値であり、SQL Serverに対して恒久的な環境の変更を行うことはできません(INSERTやUPDATE文は使用できないなど)。
関数は、スカラー値を返す場合はSQL文の中でインラインで使用することができ、結果セットを返す場合は結合することができます。
回答をまとめたコメントから注目すべき点を紹介します。Sean K Anderson:に感謝します。
関数は、値を返さなければならず、パラメータとして受け取ったデータを変更できないという点で、コンピュータ科学的な定義に従います。 (引数)として受け取るデータを変更してはならないという点です。関数は何も変えることができず、必ず 少なくとも1つのパラメータを持ち、値を返さなければなりません。ストアド プロシージャは、パラメータを持つ必要がなく、データベースオブジェクトを変更することができます。 また、値を返す必要もありません。