Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-database in Microsoft Fabric Preview
In dit artikel wordt beschreven hoe u een opgeslagen SQL Server-procedure maakt met behulp van SQL Server Management Studio en met behulp van de instructie Transact-SQL CREATE PROCEDURE.
Permissions
Vereist de machtiging CREATE PROCEDURE in de database en ALTER-machtiging voor het schema waarin de procedure wordt gemaakt.
Een opgeslagen procedure maken
U kunt de gebruikersinterface van SQL Server Management Studio (SSMS) of Transact-SQL in een SSMS-queryvenster gebruiken om een opgeslagen procedure te maken. Gebruik altijd de nieuwste versie van SSMS.
Note
In de opgeslagen voorbeeldprocedure in dit artikel wordt de voorbeelddatabase AdventureWorksLT2022 (SQL Server) of AdventureWorksLT (Azure SQL Database) gebruikt. Zie AdventureWorksLT voor instructies voor het ophalen en gebruiken van de voorbeelddatabases.
SQL Server Management Studio gebruiken
Een opgeslagen procedure maken in SSMS:
Maak in Objectverkenner verbinding met een exemplaar van SQL Server of Azure SQL Database.
Zie de volgende quickstarts voor meer informatie:
Vouw de instantie uit en vouw vervolgens Databases uit.
Vouw de gewenste database uit en vouw vervolgens Programmeerbaarheid uit.
Klik met de rechtermuisknop op Opgeslagen Procedures, en selecteer Nieuwe>opgeslagen procedure. Er wordt een nieuw queryvenster geopend met een sjabloon voor de opgeslagen procedure.
De standaardsjabloon voor opgeslagen procedures heeft twee parameters. Als uw opgeslagen procedure minder, meer of geen parameters heeft, voegt u indien nodig parameterregels toe aan of verwijdert u deze uit de sjabloon.
Selecteer in het menu QuerySpecificeer waarden voor sjabloonparameters.
Geef in het dialoogvenster Waarden opgeven voor sjabloonparameters de volgende informatie op voor de waardevelden:
-
Auteur: Vervang
Namedoor uw naam. - Datum maken: voer de datum van vandaag in.
- Beschrijving: Geef kort aan wat de procedure doet.
-
Procedure_Name: Vervang door
ProcedureNamede naam van de nieuwe opgeslagen procedure. -
@Param1: Vervang deze door
@p1de voornaam van de parameter, zoals @ColumnName1. -
@Datatype_For_Param1: Vervang indien nodig door
inthet gegevenstype van uw eerste parameter, zoals nvarchar(50). -
Default_Value_For_Param1: Vervang, indien van toepassing, door
0de standaardwaarde van uw eerste parameter of NULL. -
@Param2: Vervang deze door
@p2de tweede parameternaam, zoals @ColumnName2. -
@Datatype_For_Param2: Vervang zo nodig het
intgegevenstype van uw tweede parameter, zoals nvarchar(50). -
Default_Value_For_Param2: Vervang, indien van toepassing, door
0de standaardwaarde van uw tweede parameter of NULL.
In de volgende schermopname ziet u het voltooide dialoogvenster voor de voorbeeldprocedure die is opgeslagen:
-
Auteur: Vervang
Select OK.
Vervang in de Query-editor de SELECT-instructie door de query voor uw procedure.
De volgende code toont de voltooide CREATE PROCEDURE-instructie voor de voorbeeld stored procedure.
-- ======================================================= -- 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 GOAls u de syntaxis wilt testen, selecteer dan in het menu Query de optie Parseren. Corrigeer eventuele fouten.
Selecteer Uitvoeren op de werkbalk. De procedure wordt gemaakt als een object in de database.
Als u de nieuwe procedure in Objectverkenner wilt zien, klikt u met de rechtermuisknop op Opgeslagen procedures en selecteert u Vernieuwen.
Ga als volgt te werk om de procedure uit te voeren:
Klik in Objectverkenner met de rechtermuisknop op de naam van de opgeslagen procedure en selecteer Opgeslagen procedure uitvoeren.
Voer in het venster Procedure uitvoeren waarden in voor alle parameters en selecteer VERVOLGENS OK. Zie Een opgeslagen procedure uitvoeren voor gedetailleerde instructies.
Als u bijvoorbeeld de
SalesLT.uspGetCustomerCompanyvoorbeeldprocedure wilt uitvoeren, voert u Cannon in voor de parameter @LastName en Chris voor de parameter @FirstName en selecteert u OK. De opgeslagen procedure wordt uitgevoerd en retourneertFirstNameChris,LastNameCannon enCompanyNameOutdoor Sporting Goods.
Important
Valideer alle gebruikersinvoer. Voeg geen gebruikersinvoer samen voordat u deze valideert. Voer nooit een opdracht uit die is samengesteld op basis van niet-gevalideerde gebruikersinvoer.
Use Transact-SQL
Ga als volgt te werk om een procedure te maken in de SSMS-queryeditor:
Maak in SSMS verbinding met een exemplaar van SQL Server of Azure SQL Database.
Selecteer Nieuwe query op de werkbalk.
Voer de volgende code in het queryvenster in, waarbij u de namen en gegevenstypen van parameters en de SELECT-instructie vervangt
<ProcedureName>door uw eigen waarden.CREATE PROCEDURE <ProcedureName> @<ParameterName1> <data type>, @<ParameterName2> <data type> AS SET NOCOUNT ON; SELECT <your SELECT statement>; GOMet de volgende instructie maakt u bijvoorbeeld dezelfde opgeslagen procedure in de
AdventureWorksLTdatabase als in het vorige voorbeeld, met een iets andere procedurenaam.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; GOSelecteer Uitvoeren op de werkbalk om de query uit te voeren. De opgeslagen procedure is aangemaakt.
Als u de opgeslagen procedure wilt uitvoeren, voert u een EXECUTE-instructie in een nieuw queryvenster in, geeft u waarden op voor parameters en selecteert u Vervolgens Uitvoeren. Zie Een opgeslagen procedure uitvoeren voor gedetailleerde instructies.