【保存版】2013年度発売全パチスロアプリ一覧(iPhone,iPad)

【SQLServer】SQLServer2005 SQLを動的に組み立てて実行する。

検索画面等で条件指定してデータを取得したい場合があります。

このとき、任意指定となっている条件がある場合、
SQLを動的に作成するかと思います。

このSQLを動的に作成するという方法ですが、
SQLServerのストアドプロシージャーでももちろん使えます。

その例として、
会員情報テーブル(T_KAIIN)から、全件もしくは、指定会員NO(KAIIN_NO)のデータを
返すストアドを書いてみます。


CREATE PROC prTEST
@KAIIN_NO char(10)=NULL --会員番号
AS
BEGIN
DECLARE @varSQL VARCHAR(max)

--ベースSQL
SET @varSQL=''
SET @varSQL=@varSQL+' SELECT * FROM T_KAIIN'

--条件がある場合、条件セット
IF @KAIIN_NO IS NOT NULL
SET @varSQL=@varSQL+' WHERE KAIIN_NO= ''' + @KAIIN_NO + ''' '

--SQL実行
EXEC (@varSQL)

END


こんな感じになります。(実際に動かしてないのでエラーがでたらすみません。)
任意条件項目は、既定値としてNULLをセットしておき、
NULL以外の場合(条件指定された場合)は、SQLに追加しています。

ストアド側で動的にSQLを組み立てたほうが、
クライアント側でSQLを組み立てて毎回投げるより速度は速いかと思います。
ただ、クラサバ構成ではそこまでこだわる必要はないかと思いますが。

なお、SQLServerでストアドをがりがり書きたい人(かかざるをえない人)は、
こちらの本がおすすめ。
SQL Server 2005 ストアドプロシージャプログラミング (SQL Server Books)

動的SQLの組み方も、P535にあります。
Webフォームからデータベースを検索し、結果を25レコード単位で返す
バッチサンプルが収録されています。

他にも、エラー処理についてや、トランザクション処理やその他非常にに参考になる本です。
ただし、値段は6,090円です。高っ!


ある程度SQLは書けるが、SQLServerは初めてという方向けです。
高いけど、それだけの価値はあるかと思います。
(アマゾンでは1/23現在、在庫が後2冊です。必要な人はお早めにどうぞ。)

SQLServerの設定関連に関しては、以前も紹介しましたが、こちらがオススメ。
SQL Server 2005でいってみよう 運用管理編 (DB Magazine SELECTION)

インストールから、データベースのバックアップ・復元、ジョブの自動実行、
データベースメールの設定等が全わかりやすく解説されています。



こちらは、意外と安い2,520円です。
(ていうか、SQL Server 2005 ストアドプロシージャプログラミングの本が高いんだろうな。。。)

もうすぐSQLServerの案件も無事終わりそうです。
その間、参考にした本のうちのベスト2冊をご紹介させていただきました。

SQLServerの、特にストアド関連の解説書ってあんまりないんですよねー。
[Google PR]

Twitterはじめました。プラプラ | Twitter

<< 【Access】実行中のmdb(自分自身)をバックアップコピーする方法。
【Access】vbaでhmacが正しく計算できない、なぜだ(ロジックがおかしいんだろうが。。。) >>

[関連エントリ 最新5]

[Google PR]


[最新エントリ 5]

>>トップページ
人気カテゴリ:AccessTips SQLServer CakePHP iPad
過去ログ(全記事一覧)

コメント
コメントする(お気軽にどうぞ)









この記事のトラックバックURL
トラックバック
カテゴリー
プロフィール
お問い合わせ
Powered by NINJA TOOLS
links
recent comment
  • 【Access】vbaでhmacが正しく計算できた!!
    まさ (06/01)
  • 【Access】AccessReportMailメール送信時のポートを25から587へ
    わら (05/31)
  • 【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。
    sazi (09/08)
  • 【あまっちゃお】Amazon商品検索「あまっちゃお」プロジェクト始動。Ver00-06-00 β
    カメちゃん (07/31)
  • 【Access】あれ?DoCmd.RunCommand acCmdSaveRecordの内部仕様が変わった?
    花姉 (03/17)
  • 【Access】実行中のmdb(自分自身)をバックアップコピーする方法。
    亀 (02/06)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    管理人 (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    あ (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    K (11/13)
  • 【VAIOP】VaioXと両持ちできるものすっっごくマニアックなケース。当たり前ですが在庫限り。(笑)
    管理人 (08/04)
recent trackback
  • 【Access】2003安全でない式がブロックされていませんとセキュリティーレベル。
    awgs Foundry (10/29)
  • 【VAIOtypeP】液晶保護シートは、新車のカバーではない。レイアウト社液晶/天板保護フィルムセットRT-VP1FS1
    XMLがキライ。 (04/09)
  • Vistaから、LinkStation(NAS)にアクセスできません。
    そのほかいろいろ (09/06)