Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai 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:
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:
Bontsa ki a példányt, majd bontsa ki az Adatbázisok elemet.
Bontsa ki a kívánt adatbázist, majd bontsa ki a Programozhatóság elemet.
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.
A Lekérdezés menüben válassza A sablonparaméterek értékeinek megadásalehetőséget.
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
Namea 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
ProcedureNameaz új tárolt eljárásnévre. -
@Param1: Cserélje le
@p1az első paraméter nevét, például @ColumnName1. -
@Datatype_For_Param1: Szükség szerint cserélje le
intaz első paraméter adattípusát, például nvarchar(50). -
Default_Value_For_Param1: Szükség szerint cserélje le
0az első paraméter alapértelmezett értékére vagy NULL értékére. -
@Param2: Cserélje le
@p2a második paraméternevet, például @ColumnName2. -
@Datatype_For_Param2: Szükség szerint cserélje le
inta második paraméter adattípusát, például nvarchar(50). -
Default_Value_For_Param2: Szükség szerint cserélje le
0a 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ó:
-
Szerző: Cserélje le
Kattintson az OK gombra.
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 GOA szintaxis teszteléséhez a Lekérdezés menüben válassza Elemzéslehetőséget. Javítsa ki a hibákat.
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.
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:
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.
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 visszaadjaFirstNameChris,LastNameCannont, ésCompanyNameKü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:
Az SSMS-ben csatlakozzon az SQL Server vagy az Azure SQL Database egy példányához.
Válassza az Új lekérdezés lehetőséget az eszköztáron.
Í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>; GOA következő utasítás például ugyanazt a tárolt eljárást hozza létre az
AdventureWorksLTadatbá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; GOVá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.
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.