Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w Microsoft Fabric
W tym artykule opisano sposób tworzenia procedury składowanej programu SQL Server przy użyciu programu SQL Server Management Studio oraz instrukcji CREATE PROCEDURE Transact-SQL.
Permissions
Wymaga uprawnienia CREATE PROCEDURE w bazie danych i uprawnienia ALTER w schemacie, w którym jest tworzona procedura.
Utwórz procedurę składowaną
Do wykonania procedury składowanej można użyć programu SQL Server Management Studio (SSMS) lub Transact-SQL w oknie zapytania programu SSMS. Zainstaluj najnowszą wersję programu SQL Server Management Studio (SSMS).
Note
Przykładowa procedura składowana w tym artykule korzysta z przykładowej bazy danych AdventureWorksLT2022 (SQL Server) lub AdventureWorksLT (Azure SQL Database). Aby uzyskać instrukcje dotyczące pobierania AdventureWorksLT przykładowych baz danych i korzystania z nich, zobacz AdventureWorks sample databases (Przykładowe bazy danych AdventureWorks).
Korzystanie z programu SQL Server Management Studio
Aby utworzyć procedurę składowaną w programie SSMS:
W Eksploratorze obiektów nawiąż połączenie z wystąpieniem SQL Server lub usługi Azure SQL Database.
Aby uzyskać więcej informacji, sprawdź następujące przewodniki szybkiego startu:
Rozwiń wystąpienie, następnie rozwiń węzeł Bazy danych.
Rozwiń bazę danych, którą chcesz, a następnie rozwiń węzeł Programmability.
Kliknij prawym przyciskiem myszy pozycję Procedury składowane, a następnie wybierz pozycję Nowa>procedura składowana. Otworzy się nowe okno zapytania z szablonem procedury składowanej.
Domyślny szablon procedury składowanej ma dwa parametry. Jeśli procedura składowana ma mniej, więcej lub nie ma parametrów, dodaj lub usuń wiersze parametrów w szablonie odpowiednio.
W menu zapytania wybierz pozycję Określ wartości parametrów szablonu.
W oknie dialogowym Określanie wartości parametrów szablonu podaj następujące informacje dla pól Wartość :
-
Autor: zastąp
Nameswoim imieniem. - Data utworzenia: wprowadź bieżącą datę.
- Opis: Krótko opisz, co robi procedura.
-
Procedure_Name: zastąp
ProcedureNamenową nazwą składowanej procedury. -
@Param1: Zastąp
@p1nazwą pierwszego parametru, na przykład @ColumnName1. -
@Datatype_For_Param1: W razie potrzeby zastąp
inttypem danych pierwszego parametru, takim jak nvarchar(50). -
Default_Value_For_Param1: W razie potrzeby zastąp
0ciąg wartością domyślną pierwszego parametru lub wartością NULL. -
@Param2: zastąp
@p2nazwą swojego drugiego parametru, na przykład @ColumnName2. -
@Datatype_For_Param2: W razie potrzeby zastąp ciąg
intciągiem datatype drugiego parametru, takim jak nvarchar(50). -
Default_Value_For_Param2: W razie potrzeby zastąp
0wartość domyślną drugiego parametru lub wartością NULL.
Poniższy zrzut ekranu przedstawia ukończone okno dialogowe przykładowej procedury składowanej:
-
Autor: zastąp
Kliknij przycisk OK.
W Edytorze zapytań zastąp instrukcję SELECT zapytaniem dla procedury.
Poniższy kod przedstawia ukończoną instrukcję CREATE PROCEDURE dla przykładowej procedury składowanej:
-- ======================================================= -- 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 GOAby przetestować składnię, w menu Zapytanie wybierz pozycję Przeanalizuj. Popraw wszelkie błędy.
Wybierz pozycję Wykonaj na pasku narzędzi. Procedura jest tworzona jako obiekt w bazie danych.
Aby wyświetlić nową procedurę wymienioną w Eksploratorze obiektów, kliknij prawym przyciskiem myszy pozycję Procedury składowane i wybierz polecenie Odśwież.
Aby uruchomić procedurę:
W Eksploratorze obiektów kliknij prawym przyciskiem myszy nazwę procedury składowanej i wybierz polecenie Wykonaj procedurę składowaną.
W oknie Wykonaj procedurę wprowadź wartości dla wszystkich parametrów, a następnie wybierz przycisk OK. Aby uzyskać szczegółowe instrukcje, zobacz Wykonywanie procedury składowanej.
Aby na przykład uruchomić
SalesLT.uspGetCustomerCompanyprzykładową procedurę, wprowadź Cannon dla parametru @LastName i Chris dla parametru @FirstName, a następnie wybierz OK. Procedura składowana działa i zwracaFirstNameChris,LastNameCannon iCompanyNameOutdoor Sporting Goods.
Important
Zweryfikuj wszystkie dane wejściowe użytkownika. Nie należy łączyć danych wejściowych użytkownika przed jego zweryfikowaniem. Nigdy nie wykonaj polecenia skonstruowanego z niewaleowanych danych wejściowych użytkownika.
Korzystanie z Transact-SQL
Aby utworzyć procedurę w edytorze zapytań programu SSMS:
W SSMS nawiąż połączenie z instancją SQL Server lub Azure SQL Database.
Wybierz pozycję Nowe zapytanie na pasku narzędzi.
Wprowadź następujący kod w oknie zapytania, zastępując
<ProcedureName>, nazwy i typy danych dowolnych parametrów oraz instrukcję SELECT na własne wartości.CREATE PROCEDURE <ProcedureName> @<ParameterName1> <data type>, @<ParameterName2> <data type> AS SET NOCOUNT ON; SELECT <your SELECT statement>; GONa przykład poniższa instrukcja tworzy tę samą procedurę składowaną w
AdventureWorksLTbazie danych co w poprzednim przykładzie z nieco inną nazwą 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; GOWybierz pozycję Wykonaj na pasku narzędzi, aby wykonać zapytanie. Zostanie utworzona procedura składowana.
Aby uruchomić procedurę składowaną, wprowadź instrukcję EXECUTE w nowym oknie zapytania, podając wartości dla dowolnych parametrów, a następnie wybierz pozycję Wykonaj. Aby uzyskać szczegółowe instrukcje, zobacz Wykonywanie procedury składowanej.