C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ストアドプロシージャとファンクションの使い分け


(過去ログ 39 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■20155 / inTopicNo.1)  ストアドプロシージャとファンクションの使い分け
  
□投稿者/ はまや (24回)-(2008/06/06(Fri) 19:33:48)

分類:[データベース全般] 

お世話になります。
雑談気味になりますが、よろしくお願いします。

ストアドプロシージャとストアドファンクションの違いが良く
分かりません。
調べると「戻り値があるかないか」と書かれているのを良く見ますが
両方とも戻り値があります。

本やネット上の記事などでは、ストアドプロシージャが多く取り扱われて
いますが、性能から見るとストアドファンクションの方が便利な
ような気がしてなりません。

ストアドプロシージャとファンクションの使い分けが理解できれば
この違いも理解できるのではないかと思っています。
「こういう場合は、プロシージャでは無理なのでファンクションを使う」
といった例を教えて頂けないでしょうか?
よろしくお願いします。

一応、自分がまとめた部分です。
FROM句に使えるか否かが大きな違いだと思っています。
┌───────┬─────────┬─────────┐
│───────│ストアドプロシージャ │ストアドファンクション │
├───────┼─────────┼─────────┤
│CREATE    │PROCEDURE    │FUNCTION     │
├───────┼─────────┼─────────┤
│戻り値      │整数型のみ      │整数値、テーブル型 │
├───────┼─────────┼─────────┤
│呼び出      │EXECUTE      │関数名のみ      │
├───────┼─────────┼─────────┤
│その他      │FROM句に指定不可 │FROM句に指定可能 │
└───────┴─────────┴─────────┘


引用返信 編集キー/
■20157 / inTopicNo.2)  Re[1]: ストアドプロシージャとファンクションの使い分け
□投稿者/ はまや (25回)-(2008/06/06(Fri) 19:38:56)
書き忘れました。

開発環境
WindowsXP(SP2)
VS2005 C#(ADO.NET)
SQL Server 2005 Developer

データベース全般となっていますが、SQL Server 2005について
よろしくお願いします。
引用返信 編集キー/
■20165 / inTopicNo.3)  Re[2]: ストアドプロシージャとファンクションの使い分け
□投稿者/ やじゅ (439回)-(2008/06/06(Fri) 20:52:52)
No20157 (はまや さん) に返信

ストアドプロシージャに戻り値については、
ストアドプロシージャの成功または失敗を示すために主に使用されます。
http://msdn.microsoft.com/ja-jp/library/ms378371.aspx

一般的にFROM句に使えるように戻り値を返したい場合、ファンクション
そうでない場合は、ストアドプロシージャってだけの判断でいいと思います。
引用返信 編集キー/
■20167 / inTopicNo.4)  Re[2]: ストアドプロシージャとファンクションの使い分け
□投稿者/ はつね (771回)-(2008/06/06(Fri) 21:34:14)
はつね さんの Web サイト
No20157 (はまや さん) に返信
> データベース全般となっていますが、SQL Server 2005について
> よろしくお願いします。

ストアドプロシージャとストアドファンクションは、そのまま言語の独自サブルーチンと独自関数に置き換えて考えていいと思います。
大きな違いは、言語における独自関数は式の右辺にかけるように、ストアドファンクションはSELECT句やFROM句に書けたりする点が違います。
書籍などの情報でストアドプロシージャが多いのは、ストアド側にすべてお任せするようなサンプルを書く場合にはストアドプロシージャを使うからだと思います。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -