Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-databas i Förhandsversion av Microsoft Fabric
Den här artikeln beskriver hur du skapar en lagrad SQL Server-procedur med hjälp av SQL Server Management Studio och med hjälp av instruktionen Transact-SQL CREATE PROCEDURE.
Permissions
Kräver create procedure-behörighet i databasen och ALTER-behörighet för schemat där proceduren skapas.
Skapa en lagrad procedur
Du kan använda användargränssnittet för SQL Server Management Studio (SSMS) eller Transact-SQL i ett SSMS-frågefönster för att skapa en lagrad procedur. Använd alltid den senaste versionen av SSMS.
Note
Exempel på lagrad procedur i den här artikeln använder exempeldatabasen AdventureWorksLT2022 (SQL Server) eller AdventureWorksLT (Azure SQL Database). Anvisningar om hur du hämtar och använder AdventureWorksLT exempeldatabaserna finns i AdventureWorks-exempeldatabaser.
Använda SQL Server Management Studio
Så här skapar du en lagrad procedur i SSMS:
I Object Explorer ansluter du till en instans av SQL Server eller Azure SQL Database.
Mer information finns i följande snabbstarter:
Expandera instansen och expandera sedan Databaser.
Expandera den databas som du vill använda och expandera sedan Programmability.
Högerklicka på Lagrade procedurer och välj sedan Ny>lagrad procedur. Ett nytt frågefönster öppnas med en mall för den lagrade proceduren.
Standardmallen för lagrad procedur har två parametrar. Om den lagrade proceduren har färre, fler eller inga parametrar lägger du till eller tar bort parameterrader i mallen efter behov.
På menyn Query väljer du Ange värden för mallparametrar.
I dialogrutan Ange värden för mallparametrar anger du följande information för fälten Värde :
-
Författare: Ersätt
Namemed ditt namn. - Skapa datum: Ange dagens datum.
- Beskrivning: Beskriv kortfattat vad proceduren gör.
-
Procedure_Name: Ersätt
ProcedureNamemed det nya lagrade procedurnamnet. -
@Param1: Ersätt
@p1med ditt första parameternamn, till exempel @ColumnName1. -
@Datatype_For_Param1: Ersätt
intefter behov med den första parameterns datatyp, till exempel nvarchar(50). -
Default_Value_For_Param1: Ersätt
0efter behov med den första parameterns standardvärde eller NULL. -
@Param2: Ersätt
@p2med ditt andra parameternamn, till exempel @ColumnName2. -
@Datatype_For_Param2: Ersätt
intefter behov med den andra parameterns datatyp, till exempel nvarchar(50). -
Default_Value_For_Param2: Ersätt
0efter behov med den andra parameterns standardvärde, eller NULL.
Följande skärmbild visar den slutförda dialogrutan för den lagrade exempelproceduren:
-
Författare: Ersätt
Select OK.
I frågeredigeraren ersätter du SELECT-instruktionen med frågan för proceduren.
Följande kod visar den slutförda CREATE PROCEDURE-instruktionen för exempellagringsproceduren:
-- ======================================================= -- 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 GOOm du vill testa syntaxen går du till menyn Query och väljer Parsa. Korrigera eventuella fel.
Välj Kör i verktygsfältet. Proceduren skapas som ett objekt i databasen.
Om du vill se den nya proceduren i Object Explorer högerklickar du på Lagrade procedurer och väljer Uppdatera.
Så här kör du proceduren:
Högerklicka på namnet på den lagrade proceduren i Object Explorer och välj Kör lagrad procedur.
I fönstret Kör procedur anger du värden för alla parametrar och väljer sedan OK. Detaljerade anvisningar finns i Kör en lagrad procedur.
Om du till exempel vill köra exempelproceduren
SalesLT.uspGetCustomerCompanyanger du Cannon för parametern @LastName och Chris för parametern @FirstName och väljer sedan OK. Den lagrade proceduren körs och returnerarFirstNameChris,LastNameCannon ochCompanyNameOutdoor Sporting Goods.
Important
Verifiera alla användarindata. Sammanfoga inte användarindata innan du verifierar det. Kör aldrig ett kommando som skapats med ovaliderade användarindata.
Use Transact-SQL
Så här skapar du en procedur i SSMS-frågeredigeraren:
I SSMS ansluter du till en instans av SQL Server eller Azure SQL Database.
Välj Ny fråga i verktygsfältet.
Ange följande kod i frågefönstret och ersätt
<ProcedureName>, namn och datatyper för alla parametrar och SELECT-instruktionen med dina egna värden.CREATE PROCEDURE <ProcedureName> @<ParameterName1> <data type>, @<ParameterName2> <data type> AS SET NOCOUNT ON; SELECT <your SELECT statement>; GOFöljande instruktion skapar till exempel samma lagrade procedur i
AdventureWorksLTdatabasen som i föregående exempel, med ett något annorlunda procedurnamn.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älj Kör i verktygsfältet för att köra frågan. Den lagrade proceduren skapas.
Om du vill köra den lagrade proceduren anger du en EXECUTE-instruktion i ett nytt frågefönster, anger värden för alla parametrar och väljer sedan Kör. Detaljerade anvisningar finns i Kör en lagrad procedur.