Transact-SQLでストアドプロシージャを作成する:さらっと覚えるSQL&T-SQL入門(9)(2/2 ページ)
アプリケーション開発でデータベースを利用する新人プログラマに向けて、SQLおよびT-SQLを短期間で理解できるよう、開発現場ですぐに必要となる内容を中心に解説する。(編集部)
ストアドプロシージャの更新
続いて、登録したストアドプロシージャの内容を書き換えてみましょう。CREATE PROCEDURE文によって登録したストアドプロシージャの内容を書き換えるには、ALTER PROCEDURE文を利用します。先ほどのストアドプロシージャは製品IDをパラメータとして渡していましたが、これを変更し製品名を渡すようにしてみましょう。ALTER PROCEDURE文の内容は次のとおりです。
ALTER PROCEDURE uspSamle1 @Name nvarchar(50) AS SELECT ProductID, Name, ListPrice FROM Production.Product WHERE Name = @Name
こちらのストアドプロシージャでは、「NAME」列の値とパラメータを比較しています。「NAME」列はnvarchar(50)と定義されているので、パラメータの定義も合わせておきます。ALTER PROCEDURE文の発行が無事に完了したら、その動作を確認しましょう。
EXEC uspSamle1 'Chain' 実行結果 ProductID Name ListPrice 952 Chain 20.24
パラメータが文字列である場合は、シングルコーテーションで文字を囲む必要がある点に注意してください。
Management Studioから確認する
SQL Serverに登録したストアドプロシージャはManagement Studioからその存在を確認できます。
Management Studio上の「オブジェクトエクスプローラ」よりAdventureWorksツリーを展開し、「プログラミング」−「ストアドプロシージャ」で登録したストアドプロシージャを確認できます(図2)。
Management Studioよりダイアログを利用したストアドプロシージャの実行を行うことも可能です。対象のストアドプロシージャを右クリックし、「ストアドプロシージャの実行」より「プロシージャの実行」ダイアログを表示させます(図3)。このダイアログ上から、実行対象のストアドプロシージャの定義、引数となるパラメータの定義などを行うことが可能です。
ダイアログの入力に従いプロシージャを実行するための各種EXECUTE文などが自動生成されます。
ストアドプロシージャを削除する
ストアドプロシージャの新規作成、更新と確認したので、残るストアドプロシージャの削除についても確認しておきましょう。ストアドプロシージャの削除を行うための構文は次のとおりです。
DROP PROCEDURE プロシージャ名
早速ストアドプロシージャを削除できるか確認してみましょう。
DROP PROCEDURE uspSamle1 実行結果 コマンドは正常に完了しました。
DROP PROCEDURE文の発行後、対象のストアドプロシージャの呼び出しを行おうとするとエラーが発生します。
まとめ
今回はストアドプロシージャの基本を取り上げました。その概念や、パラメータとその実行結果などについて、実際にストアドプロシージャを作成・実行しながらその動作を確認していきましょう。今回はSELECT文を発行するだけの内容であったため、まだまだ物足りない方も多いと思います。
次回は条件分岐の利用や、戻り値の取得などを取り上げる予定です。お楽しみに!(次回へ続く)
筆者プロフィール
石橋潤一
株式会社システムインテグレータ勤務。Web+DBの業務アプリをメインに開発に携わる。@IT連載記事「SQL Server 2005を使いこなそう」「SQL Server 2005 CTPレビュー」執筆のほか、著書に『DBマガジン別冊 SQL Server 2005徹底活用ガイド』(翔泳社刊/共著)、『ASP.NET+SQL Server ゼロからはじめるWebアプリケーション』(ソフトバンクパブリッシング刊/共著)。
Copyright © ITmedia, Inc. All Rights Reserved.