Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
databáze SQL v Microsoft Fabric
Tento článek popisuje, jak vytvořit uloženou proceduru SQL Serveru pomocí aplikace SQL Server Management Studio a pomocí příkazu Transact-SQL CREATE PROCEDURE.
Permissions
Vyžaduje oprávnění CREATE PROCEDURE v databázi a ALTER oprávnění ke schématu, ve kterém se procedura vytváří.
Vytvoření uložené procedury
K provedení uložené procedury můžete použít SQL Server Management Studio (SSMS) nebo Transact-SQL v okně dotazu SSMS. Nainstalujte nejnovější verzi aplikace SQL Server Management Studio (SSMS).
Note
Příklad uložené procedury v tomto článku používá ukázkovou AdventureWorksLT2022 databázi (SQL Server) nebo AdventureWorksLT (Azure SQL Database). Pokyny k získání a používání AdventureWorksLT ukázkových databází najdete v ukázkových databázích AdventureWorks.
Použití aplikace SQL Server Management Studio
Vytvoření uložené procedury v SSMS:
V Průzkumníku objektů se připojte k instanci SQL Serveru nebo Azure SQL Database.
Další informace najdete v následujících úvodních pokynech:
Rozbalte instanci a poté rozbalte Databáze.
Rozbalte požadovanou databázi a potom rozbalte programovatelnost.
Klikněte pravým tlačítkem myši na Uložené procedury a pak vyberte Nová>uložená procedura. Otevře se nové okno dotazu se šablonou pro uloženou proceduru.
Výchozí šablona uložené procedury má dva parametry. Pokud uložená procedura obsahuje méně, více nebo žádné parametry, přidejte nebo odeberte řádky parametrů v šabloně podle potřeby.
V nabídce dotazu vyberte Zadat hodnoty pro parametry šablony.
V dialogovém okně Zadat hodnoty parametrů šablony zadejte následující informace pro pole Hodnota :
-
Autor: Nahraďte
Namesvým jménem. - Datum vytvoření: Zadejte dnešní datum.
- Popis: Stručně popište, co postup dělá.
-
Procedure_Name: Nahraďte
ProcedureNamenovým názvem uložené procedury. -
@Param1: Nahraďte
@p1názvem svého prvního parametru, například @ColumnName1. -
@Datatype_For_Param1: Podle potřeby nahraďte
intdatovým typem vašeho prvního parametru, například nvarchar(50). -
Default_Value_For_Param1: Podle potřeby nahraďte
0výchozí hodnotou vašeho prvního parametru nebo hodnotou NULL. -
@Param2: Nahraďte
@p2názvem druhého parametru, například @ColumnName2. -
@Datatype_For_Param2: Podle potřeby nahraďte
intdatovým typem druhého parametru, například nvarchar(50). -
Default_Value_For_Param2: Podle potřeby nahraďte
0výchozí hodnotou druhého parametru nebo hodnotou NULL.
Následující snímek obrazovky ukazuje dokončené dialogové okno pro příklad uložené procedury:
-
Autor: Nahraďte
Vyberte OK.
V Editoru dotazů nahraďte příkaz SELECT dotazem pro váš postup.
Následující kód ukazuje dokončený příkaz CREATE PROCEDURE pro příklad uloženou proceduru:
-- ======================================================= -- 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 GOSyntaxi otestujete tak, že v nabídce Dotaz vyberete Parsovat. Opravte všechny chyby.
Na panelu nástrojů vyberte Spustit . Procedura se vytvoří jako objekt v databázi.
Pokud chcete zobrazit nový postup uvedený v Průzkumníku objektů, klikněte pravým tlačítkem myši na Uložené procedury a vyberte Aktualizovat.
Aby bylo možné spustit postup:
V Průzkumníku objektů klikněte pravým tlačítkem myši na název uložené procedury a vyberte Spustit uloženou proceduru.
V okně Spustit proceduru zadejte hodnoty pro všechny parametry a pak vyberte OK. Podrobné pokyny najdete v tématu Spuštění uložené procedury.
Pokud chcete například spustit ukázkovou proceduru
SalesLT.uspGetCustomerCompany, zadejte kanón pro parametr @LastName a Chris pro parametr @FirstName a pak vyberte OK. Uložená procedura běží a vracíFirstNameChrise,LastNameCannon aCompanyNameVenkovní sportovní zboží.
Important
Ověřte veškerý vstup uživatele. Nezřetězte uživatelský vstup, dokud jej neověříte. Nikdy nespouštět příkaz vytvořený z neplatného uživatelského vstupu.
Použijte Transact-SQL
Postup vytvoření v Editoru dotazů SSMS:
V nástroji SSMS se připojte k instanci SQL Serveru nebo Azure SQL Database.
Na panelu nástrojů vyberte Nový dotaz .
Do okna dotazu zadejte následující kód, nahraďte
<ProcedureName>názvy a datové typy libovolných parametrů a příkaz SELECT vlastními hodnotami.CREATE PROCEDURE <ProcedureName> @<ParameterName1> <data type>, @<ParameterName2> <data type> AS SET NOCOUNT ON; SELECT <your SELECT statement>; GONapříklad následující příkaz vytvoří stejnou uloženou proceduru
AdventureWorksLTv databázi jako v předchozím příkladu s mírně odlišným názvem procedury.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ýběrem možnosti Spustit na panelu nástrojů spusťte dotaz. Vytvoří se uložená procedura.
Pokud chcete spustit uloženou proceduru, zadejte v novém okně dotazu příkaz EXECUTE, zadejte hodnoty pro všechny parametry a pak vyberte Spustit. Podrobné pokyny najdete v tématu Spuštění uložené procedury.
Související obsah
- Uložené procedury (databázový stroj)
- CREATE PROCEDURE (Transact-SQL)
- Spuštění uložené procedury
- EXECUTE (Transact-SQL)
- Zadání parametrů v uložené proceduře