TOP

SQL Server の SQL Stored Procedures

Stored Procedure とは何ですか?

Stored Procedure (ストアド プロシージャ) は、コードを繰り返し使用できるように保存できる準備された SQL コードです。

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

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


Stored Procedure 構文

CREATE PROCEDURE procedure_name
AS 
sql_statement
GO

Stored Procedure を実行しています

EXEC procedure_name

デモデータベース

以下は、「Northwind」データベースの「Customers」(「Customers」) テーブルのサンプルです。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Stored Procedure の例

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

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO

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

EXEC SelectAllCustomers

Stored Procedure 1 つのパラメータ

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

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

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

EXEC SelectAllCustomers @City = 'London'

多くのパラメータを含む Stored Procedure

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

次の SQL ステートメントは、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'