Ich habe eine gespeicherte Prozedur in SQL Server enthält mehrere Resultset (d. H. Es enthält mehrere SELECT
Statement). Es ist eine gute Praxis der Programmierung?Mehrere Resultsets in einer einzigen gespeicherten Prozedur zurückgeben ist eine gute Praxis
Beispiel:
Ich habe ein Person
und ein Person_Address
Tisch.
Tabelle erstellen: Person
CREATE TABLE [dbo].[Person]
(
[id] [int] IDENTITY(1,1) NOT NULL,
[firstName] [varchar](50) NOT NULL,
[lastName] [varchar](50) NOT NULL,
)
Insert Daten:
INSERT INTO dbo.Person([firstName], [lastName)
VALUES ('John', 'Michle')
INSERT INTO dbo.Person([firstName], [lastName])
VALUES ('Emma', 'Watson')
GO
Tabelle erstellen 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 Daten:
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
gespeicherte Prozedur setzt mehrere Ergebnis Rückkehr
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
In der oben Stored Procedure GetPersonInfoMultiRS
enthält zwei SELECT
Statement, ich bin 18 In meinem realen Projekt SELECT
Statement mit. Lassen Sie mich wissen, dass dies eine gute Programmierung ist oder nicht? Eine konkrete Erklärung dazu kann ich bei Google, Yahoo und anderen Suchmaschinen nicht finden. Bitte hilf mir.