SQL Server にストアド プロシージャがあり、複数の結果セットが含まれています (つまり、複数のSELECT
ステートメントが含まれています)。プログラミングの良い練習ですか?
例えば:
とテーブルがPerson
ありPerson_Address
ます。
テーブルの作成:人
CREATE TABLE [dbo].[Person]
(
[id] [int] IDENTITY(1,1) NOT NULL,
[firstName] [varchar](50) NOT NULL,
[lastName] [varchar](50) NOT NULL,
)
データの挿入:
INSERT INTO dbo.Person([firstName], [lastName)
VALUES ('John', 'Michle')
INSERT INTO dbo.Person([firstName], [lastName])
VALUES ('Emma', 'Watson')
GO
テーブルPerson_Address を作成します。
CREATE TABLE [dbo].[Person_Address]
(
[id] [int] IDENTITY(1,1) NOT NULL,
[pid] [int] NOT NULL,
[address] [varchar](50) NOT NULL,
[city] [varchar](50) NOT NULL,
)
データの挿入:
INSERT INTO dbo.Person_Address([pid], [address], [city], [ispreferred])
VALUES ('1', 'Eiffel Tower', 'Paris'])
INSERT INTO dbo.Person_Address([pid], [address], [city], [ispreferred])
VALUES ('1', 'Donghai Bridge', 'China')
INSERT INTO dbo.Person_Address([pid], [address], [city], [ispreferred])
VALUES ('2', 'Nile River', 'Egypt')
GO
複数の結果セットを返すストアド プロシージャ
CREATE PROCEDURE GetPersonInfoMultiRS
@PersonID int
AS
BEGIN
SET NOCOUNT ON;
SELECT p.* FROM Person p WHERE p.id = @PersonID;
SELECT pa.* FROM Person_Address pa WHERE pa.pid = @PersonID;
END
GO
上記のストアド プロシージャGetPersonInfoMultiRS
には 2 つのSELECT
ステートメントが含まれています。私の実際のプロジェクトでは、18個のSELECT
ステートメントがあります。これがプログラミングの良い習慣かどうか教えてください。これについては、グーグルやヤフーなどの検索エンジンで具体的な説明を得ることができません。親切に私を助けてください。