Megosztás a következőn keresztül:


Tárolt eljárás létrehozása

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Ez a cikk azt ismerteti, hogyan hozhat létre tárolt SQL Server-eljárást az SQL Server Management Studio és a Transact-SQL CREATE PROCEDURE utasítás használatával.

Permissions

Create PROCEDURE engedélyt igényel az adatbázisban, és alter engedélyt arra a sémára, amelyben az eljárás létrejön.

Tárolt eljárás létrehozása

Az SQL Server Management Studio (SSMS) vagy Transact-SQL egy SSMS-lekérdezési ablakban tárolt eljárás végrehajtásához használható. Telepítse az SQL Server Management Studio (SSMS) legújabb verzióját.

Note

A cikkben szereplő példa tárolt eljárás a minta AdventureWorksLT2022 (SQL Server) vagy AdventureWorksLT (Azure SQL Database) adatbázist használja. A mintaadatbázisok beszerzésére és használatára vonatkozó utasításokért tekintse meg az AdventureWorksLTAdventureWorks mintaadatbázisait.

Az SQL Server Management Studio használata

Tárolt eljárás létrehozása az SSMS-ben:

  1. Az Object Explorerben csatlakozzon az SQL Server vagy az Azure SQL Database egy példányához.

    További információkért tekintse meg az alábbi rövid útmutatókat:

  2. Bontsa ki a példányt, majd bontsa ki az Adatbázisok elemet.

  3. Bontsa ki a kívánt adatbázist, majd bontsa ki a Programozhatóság elemet.

  4. Kattintson a jobb gombbal a Tárolt eljárások elemre, majd válassza az Új>tárolt eljárás lehetőséget. Megnyílik egy új lekérdezési ablak a tárolt eljárás sablonjával.

    Az alapértelmezett tárolt eljárássablon két paraméterből áll. Ha a tárolt eljárás kevesebb, több vagy egyetlen paramétert sem tárol, szükség szerint adjon hozzá vagy távolítson el paramétersorokat a sablonban.

  5. A Lekérdezés menüben válassza A sablonparaméterek értékeinek megadásalehetőséget.

  6. A Sablonparaméterek értékeinek megadása párbeszédpanelen adja meg a következő adatokat az Érték mezőkhöz:

    • Szerző: Cserélje le Name a nevét.
    • Létrehozási dátum: Adja meg a mai dátumot.
    • Leírás: Röviden írja le az eljárás menetét.
    • Procedure_Name: Cserélje le ProcedureName az új tárolt eljárásnévre.
    • @Param1: Cserélje le @p1 az első paraméter nevét, például @ColumnName1.
    • @Datatype_For_Param1: Szükség szerint cserélje le int az első paraméter adattípusát, például nvarchar(50).
    • Default_Value_For_Param1: Szükség szerint cserélje le 0 az első paraméter alapértelmezett értékére vagy NULL értékére.
    • @Param2: Cserélje le @p2 a második paraméternevet, például @ColumnName2.
    • @Datatype_For_Param2: Szükség szerint cserélje le int a második paraméter adattípusát, például nvarchar(50).
    • Default_Value_For_Param2: Szükség szerint cserélje le 0 a második paraméter alapértelmezett értékére vagy NULL értékére.

    Az alábbi képernyőképen a példaként megadott eljárás kész párbeszédpanelje látható:

    Képernyőkép egy kitöltött „Értékek megadása a sablonparaméterekhez” párbeszédpanelről.

  7. Kattintson az OK gombra.

  8. A Lekérdezésszerkesztőben cserélje le a SELECT utasítást az eljárás lekérdezésére.

    Az alábbi kód a példaként tárolt eljáráshoz tartozó CREATE PROCEDURE utasítást mutatja be:

    -- =======================================================
    -- Create Stored Procedure Template for Azure SQL Database
    -- =======================================================
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE PROCEDURE SalesLT.uspGetCustomerCompany
    (
        -- Add the parameters for the stored procedure here
        @LastName nvarchar(50) = NULL,
        @FirstName nvarchar(50) = NULL
    )
    AS
    /*
    -- =============================================
    -- Author:      My Name
    -- Create Date: 01/23/2024
    -- Description: Returns the customer's company name.
    -- =============================================
    */
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON
    
        -- Insert statements for procedure here
        SELECT FirstName, LastName, CompanyName
           FROM SalesLT.Customer
           WHERE FirstName = @FirstName AND LastName = @LastName;
    END
    GO
    
  9. A szintaxis teszteléséhez a Lekérdezés menüben válassza Elemzéslehetőséget. Javítsa ki a hibákat.

  10. Válassza a Végrehajtás lehetőséget az eszköztáron. Az eljárás objektumként jön létre az adatbázisban.

  11. Az Object Explorerben felsorolt új eljárás megtekintéséhez kattintson a jobb gombbal a Tárolt eljárások elemre, és válassza a Frissítés lehetőséget.

Az eljárás futtatása:

  1. Az Object Explorerben kattintson a jobb gombbal a tárolt eljárás nevére, és válassza a Tárolt eljárás végrehajtása lehetőséget.

  2. Az Eljárás végrehajtása ablakban adja meg az összes paraméter értékét, majd kattintson az OK gombra. Részletes útmutatásért lásd : Tárolt eljárás végrehajtása.

    A mintaeljárás futtatásához például írja be a SalesLT.uspGetCustomerCompanyCannont a @LastName paraméterhez, Christ pedig a @FirstName paraméterhez, majd válassza az OK gombot. A tárolt eljárás fut, és visszaadja FirstNameChris, LastNameCannont, és CompanyNameKültéri Sportfelszereléseket.

Important

Ellenőrizze az összes felhasználói bemenetet. Az ellenőrzés előtt ne fűzz össze felhasználói adatokat. Soha ne hajtson végre páratlan felhasználói bemenetből létrehozott parancsot.

Használd a Transact-SQL-t

Eljárás létrehozása az SSMS-lekérdezésszerkesztőben:

  1. Az SSMS-ben csatlakozzon az SQL Server vagy az Azure SQL Database egy példányához.

  2. Válassza az Új lekérdezés lehetőséget az eszköztáron.

  3. Írja be a következő kódot a lekérdezési ablakba, cserélje le <ProcedureName>a paraméterek nevét és adattípusait, valamint a SELECT utasítást a saját értékeire.

    CREATE PROCEDURE <ProcedureName>
       @<ParameterName1> <data type>,
       @<ParameterName2> <data type>
    AS   
    
       SET NOCOUNT ON;
       SELECT <your SELECT statement>;
    GO
    

    A következő utasítás például ugyanazt a tárolt eljárást hozza létre az AdventureWorksLT adatbázisban, mint az előző példában, kissé eltérő eljárásnévvel.

    CREATE PROCEDURE SalesLT.uspGetCustomerCompany1
        @LastName nvarchar(50),
        @FirstName nvarchar(50)
    AS   
    
        SET NOCOUNT ON;
        SELECT FirstName, LastName, CompanyName
        FROM SalesLT.Customer
        WHERE FirstName = @FirstName AND LastName = @LastName;
    GO
    
  4. Válassza a Lekérdezés végrehajtásához az eszköztár Végrehajtás elemét. A tárolt eljárás létre lett hozva.

  5. A tárolt eljárás futtatásához írjon be egy EXECUTE utasítást egy új lekérdezési ablakban, adjon meg értékeket bármely paraméterhez, majd válassza az Execute (Végrehajtás) lehetőséget. Részletes útmutatásért lásd : Tárolt eljárás végrehajtása.