Membuat prosedur tersimpan

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Artikel ini menjelaskan cara membuat prosedur tersimpan SQL Server dengan menggunakan SQL Server Management Studio dan dengan menggunakan pernyataan TRANSACT-SQL CREATE PROCEDURE.

Izin

Memerlukan izin CREATE PROCEDURE dalam database dan izin UBAH pada skema di mana prosedur sedang dibuat.

Membuat prosedur tersimpan

Anda dapat menggunakan antarmuka pengguna SQL Server Management Studio (SSMS) atau Transact-SQL di jendela kueri SSMS untuk membuat prosedur tersimpan. Selalu gunakan versi terbaru SSMS.

Catatan

Contoh prosedur tersimpan dalam artikel ini menggunakan database sampel AdventureWorksLT2022 (SQL Server) atau AdventureWorksLT (Azure SQL Database). Untuk petunjuk tentang cara mendapatkan dan menggunakan AdventureWorksLT database sampel, lihat Database sampel AdventureWorks.

Menggunakan SQL Server Management Studio

Untuk membuat prosedur tersimpan di SSMS:

  1. Di Object Explorer, sambungkan ke instans SQL Server atau Azure SQL Database.

    Untuk informasi selengkapnya, lihat mulai cepat berikut ini:

  2. Perluas instans, lalu perluas Database.

  3. Perluas database yang Anda inginkan, lalu perluas Keterprograman.

  4. Klik kanan Prosedur Tersimpan, lalu pilih Prosedur Tersimpan Baru>. Jendela kueri baru terbuka dengan templat untuk prosedur tersimpan.

    Templat prosedur tersimpan default memiliki dua parameter. Jika prosedur tersimpan Anda memiliki lebih sedikit, lebih banyak, atau tidak ada parameter, tambahkan atau hapus baris parameter dalam templat yang sesuai.

  5. Pada menu Kueri , pilih Tentukan Nilai untuk Parameter Templat.

  6. Dalam kotak dialog Tentukan Nilai untuk Parameter Templat, berikan informasi berikut untuk bidang Nilai :

    • Penulis: Ganti Name dengan nama Anda.
    • Buat Tanggal: Masukkan tanggal hari ini.
    • Deskripsi: Jelaskan secara singkat apa yang dilakukan prosedur.
    • Procedure_Name: Ganti ProcedureName dengan nama prosedur tersimpan baru.
    • @Param1: Ganti @p1 dengan nama parameter pertama Anda, seperti @ColumnName1.
    • @Datatype_For_Param1: Sebagaimana mestinya, ganti int dengan jenis data parameter pertama Anda, seperti nvarchar(50).
    • Default_Value_For_Param1: Jika sesuai, ganti 0 dengan nilai default parameter pertama Anda, atau NULL.
    • @Param2: Ganti @p2 dengan nama parameter kedua Anda, seperti @ColumnName2.
    • @Datatype_For_Param2: Sebagaimana mestinya, ganti int dengan jenis data parameter kedua Anda, seperti nvarchar(50).
    • Default_Value_For_Param2: Jika sesuai, ganti 0 dengan nilai default parameter kedua Anda, atau NULL.

    Cuplikan layar berikut menunjukkan kotak dialog yang telah selesai untuk contoh prosedur tersimpan:

    Screenshot that shows a completed Specify Values for Template Parameters dialog box.

  7. Pilih OK.

  8. Di Editor Kueri, ganti pernyataan SELECT dengan kueri untuk prosedur Anda.

    Kode berikut menunjukkan pernyataan CREATE PROCEDURE yang telah selesai untuk contoh prosedur tersimpan:

    -- =======================================================
    -- Create Stored Procedure Template for Azure SQL Database
    -- =======================================================
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:      My Name
    -- Create Date: 01/23/2024
    -- Description: Returns the customer's company name.
    -- =============================================
    CREATE PROCEDURE SalesLT.uspGetCustomerCompany
    (
        -- Add the parameters for the stored procedure here
        @LastName nvarchar(50) = NULL,
        @FirstName nvarchar(50) = NULL
    )
    AS
    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
    GO
    
  9. Untuk menguji sintaks, pada menu Kueri , pilih Uraikan. Perbaiki kesalahan apa pun.

  10. Pilih Jalankan dari toolbar. Prosedur dibuat sebagai objek dalam database.

  11. Untuk melihat prosedur baru yang tercantum di Object Explorer, klik kanan Prosedur Tersimpan dan pilih Refresh.

Untuk menjalankan prosedur:

  1. Di Object Explorer, klik kanan nama prosedur tersimpan dan pilih Jalankan Prosedur Tersimpan.

  2. Di jendela Jalankan Prosedur , masukkan nilai untuk semua parameter, lalu pilih OK. Untuk instruksi mendetail, lihat Menjalankan prosedur tersimpan.

    Misalnya, untuk menjalankan SalesLT.uspGetCustomerCompany prosedur sampel, masukkan Meriam untuk parameter @LastName dan Chris untuk parameter @FirstName, lalu pilih OK. Prosedur tersimpan berjalan, dan mengembalikan FirstNameChris, LastNameCannon, dan CompanyNameOutdoor Sporting Goods.

Penting

Validasi semua input pengguna. Jangan menggabungkan input pengguna sebelum Anda memvalidasinya. Jangan pernah menjalankan perintah yang dibangun dari input pengguna yang tidak valid.

Menggunakan Transact-SQL

Untuk membuat prosedur di Editor Kueri SSMS:

  1. Di SQL Server, sambungkan ke instans SQL Server atau Azure SQL Database.

  2. Pilih Kueri Baru dari toolbar.

  3. Masukkan kode berikut ke dalam jendela kueri, ganti <ProcedureName>, nama dan jenis data dari parameter apa pun, dan pernyataan SELECT dengan nilai Anda sendiri.

    CREATE PROCEDURE <ProcedureName>
       @<ParameterName1> <data type>,
       @<ParameterName2> <data type>
    AS   
    
       SET NOCOUNT ON;
       SELECT <your SELECT statement>;
    GO
    

    Misalnya, pernyataan berikut membuat prosedur tersimpan yang sama dalam AdventureWorksLT database seperti contoh sebelumnya, dengan nama prosedur yang sedikit berbeda.

    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;
    GO
    
  4. Pilih Jalankan dari toolbar untuk menjalankan kueri. Prosedur tersimpan dibuat.

  5. Untuk menjalankan prosedur tersimpan, masukkan pernyataan EXECUTE di jendela kueri baru, yang menyediakan nilai untuk parameter apa pun, lalu pilih Jalankan. Untuk instruksi mendetail, lihat Menjalankan prosedur tersimpan.