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';
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。