Tạo PROCEDURE (thủ tục) trong SQL Server

Ví dụ từ A-Z cách tạo thủ tục trong SQL Server ứng dụng siêu hay khi làm phần mềm

Cách viết thủ tục (procedure) trong SQL Server.

  1. Procedure trong SQL Server là gì ?
  2. Cú pháp tạo PROCEDURE
  3. Thực hành PROCEDURE
  4. Các kiểu PROCEDURE hay sử dụng

 

1. Procedure trong SQL Server là gì ?

Trong SQL Server, Procedure (tên đầy đủ là Stored Procedure) là một tập hợp các câu lệnh SQL được lưu trữ trong cơ sở dữ liệu để thực hiện một tác vụ cụ thể. Bạn có thể hiểu nôm na nó giống như một hàm hoặc đoạn chương trình có thể tái sử dụng nhiều lần.

2. Cú pháp tạo PROCEDURE

CREATE PROCEDURE TenThuTuc
    @ThamSo1 KieuDuLieu,
    @ThamSo2 KieuDuLieu = GiaTriMacDinh, -- (nếu có)
    @ThamSo3 KieuDuLieu OUTPUT           -- (nếu có đầu ra)
AS
BEGIN
    -- Các câu lệnh SQL ở đây
END

3. Thực hành tạo PROCEDUR

3. Các loại Procedure trong SQL Server

Ví dụ PROCEDURE  trả về 1 giá trị

 ** Chỉ trả về in ra xem kết quả
CREATE PROCEDURE [dbo].[pr_TEST_1]
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    Declare @kq int
    set @kq=1
    -- tính toán xử lý biến @kq
    Select @kq
END

-- Sử dụng PROCEDURE đã viết

Declare @kq int
Exec @kq=[dbo].[pr_TEST_2]
select @kq

-- Tính ứng dụng: dùng để tính toán trả về giá trị nào đó

Ví dụ PROCEDURE  trả về 1 bảng dữ liệu từ Table.

CREATE PROCEDURE [dbo].[pr_TEST_2]
AS
BEGIN
    SET NOCOUNT ON;       
    Select * From tbKhuVuc    
END 

-- Sử dụng PROCEDURE đã viết

Exec pr_TEST_2 

Ví dụ PROCEDURE  trả về 1 bảng dữ liệu từ biến table tự tạo.

CREATE PROCEDURE [dbo].[pr_TEST_3]
AS
BEGIN
    SET NOCOUNT ON;       
    Declare @temp TABLE
        (
            TT int
        ,    cmd  nvarchar(150)
        )
        Insert @temp values
                (
                    1
                ,    'khachhang'
            )
        Select * From @temp   
END  

-- Sử dụng PROCEDURE đã viết

Exec pr_TEST_3

Ví dụ PROCEDURE  trả về có tham số truyền vào

ALTER PROCEDURE [dbo].[pr_TEST_4]
    @ten nvarchar(50)
AS
BEGIN
    SET NOCOUNT ON; 
    Select * From tbBangGia Where Ten=@ten

END

-- Sử dụng PROCEDURE đã viết

Exec pr_TEST_4 N'Ngoài trời'

 

Ví dụ PROCEDURE  trả về có tham số truyền vào và trả giá trị về cho tham số

CREATE PROCEDURE [dbo].[pr_TEST_5]
     @ts01 nvarchar(50) output
,    @ts02 nvarchar(50) output
AS
BEGIN
    SET NOCOUNT ON;
    set @ts02='123456789'
    Select * From tbBangGia Where Hidden=0 Order by Ma

END

-- Sử dụng PROCEDURE đã viết

DECLARE  @t01  NVARCHAR(50)
DECLARE  @t02 NVARCHAR(50)
set @t01='123'

EXEC [dbo].[pr_TEST_5]  @t01, @t02 OUTPUT
Select @t02 as 'TS02'

 Trả về 2 datatable từ C# có thể lấy để sử dụng

 

Bài viết liên quan:

Ví dụ từ A-Z cách tạo thủ tục trong SQL Server ứng dụng siêu hay khi làm phần mềm