TECH I.S.

SQL ServerのSQLストアドプロシージャ


ストアドプロシージャとは

ストアドプロシージャは、保存できる準備済みのSQLコードであるため、コードを何度も再利用できます。

したがって、何度も何度も作成するSQLクエリがある場合は、それをストアドプロシージャとして保存し、それを呼び出して実行します。

また、ストアドプロシージャにパラメータを渡すこともできます。これにより、ストアドプロシージャは、渡されたパラメータ値に基づいて動作できます。

ストアドプロシージャの構文


CREATE PROCEDURE <em>procedure_name</em> AS <em>sql_statement</em> GO;

ストアドプロシージャを実行する

EXEC <em>procedure_name</em>;

デモデータベース

以下は、Northwindサンプルデータベースの"Customers"テーブルからの選択です。

顧客ID

顧客名

連絡先

住所

郵便番号

1

アルフレッド・フードボックス マリア・アンダース オベレ通り57 ベルリン 12209 ドイツ
2 アナ・トルヒーヨ サンドイッチとアイスクリーム アナ・トルヒーヨ コンスティトゥシオン通り2222番地 メキシコDF 05021 メキシコ
3 アントニオ・モレノ・タケリア アンソニー・モレノ マタデロス 2312 メキシコDF 05023 メキシコ
4

アラウンド・ザ・ホーン トーマス・ハーディ 120 ハノーバー スクエア ロンドン WA1 1DP イギリス
5 バーグルンドのスーパーマーケット クリスティーナ・ベルグルンド ベルグフスヴァーゲン 8 ルレオ S-958 22 スウェーデン

ストアドプロシージャの例

次のSQLステートメントは、"Customers"テーブルからすべてのレコードを選択する "SelectAllCustomers"という名前のストアドプロシージャを作成します。

CREATE PROCEDURE SelectAllCustomers AS SELECT * FROM Customers GO;

上記のストアドプロシージャを次のように実行します。

EXEC SelectAllCustomers;

パラメータが1つのストアドプロシージャ

次のSQLステートメントは、"Customers"テーブルから特定の都市のCustomersを選択するストアドプロシージャを作成します。

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30) AS SELECT * FROM Customers WHERE City = @City GO;

上記のストアドプロシージャを次のように実行します。

EXEC SelectAllCustomers @City = 'London';

複数のパラメーターを持つストアドプロシージャ

複数のパラメータの設定は非常に簡単です。以下に示すように、各パラメーターとデータ型をカンマで区切ってリストします。

次のSQLステートメントは、"Customers"テーブルから特定のPostalCodeを持つ特定のCity からCustomersを選択するストアド プロシージャを作成します。

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10) AS SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode GO;

上記のストアドプロシージャを次のように実行します。

EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細