SQLチュートリアル

SQL HOME SQLイントロ SQL構文 SQL Select SQL Select Distinct SQL Where SQL And、Or、Not SQLの順序 SQL Insert Into SQLNull値 SQLアップデート SQL削除 SQL Select Top SQLの最小値と最大値 SQLカウント、平均、合計 SQL Like SQLワイルドカード SQL入力 SQLの間 SQLエイリアス SQL結合 SQL内部結合 SQL左結合 SQL右結合 SQL完全結合 SQL自己結合 SQLユニオン SQL Group By SQLを持っている SQLが存在する SQL Any、All SQL Select Into SQL Insert Into Select SQLケース SQLNull関数 SQLストアドプロシージャ SQLコメント SQL演算子

SQLデータベース

SQL Create DB SQLドロップDB SQLバックアップDB SQLテーブルの作成 SQLドロップテーブル SQL ALTER TABLE SQLの制約 SQLはNullではありません SQL独自 SQL主キー SQL外部キー SQLチェック SQLのデフォルト SQLインデックス SQL自動インクリメント SQLの日付 SQLビュー SQLインジェクション SQLホスティング SQLデータ型

SQLリファレンス

SQLキーワード MySQL関数 SQLServerの機能 MSAccess関数 SQLクイック参照

SQLの

SQLの例 SQLクイズ SQL演習 SQL証明書

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


ストアドプロシージャとは何ですか?

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

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

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

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

CREATE PROCEDURE procedure_name
AS
sql_statement
GO;

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

EXEC procedure_name;

デモデータベース

以下は、Northwindサンプルデータベースの「Customers」テーブルからの抜粋です。

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

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

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

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;

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

EXEC SelectAllCustomers;


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

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

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

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

EXEC SelectAllCustomers @City = 'London';

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

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

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

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';