Giới thiệu Stored Procedure trong SQL Server

Trong bài này bạn sẽ được tìm hiểu và khám phá khái niệm về stored procedure trong SQL Server, qua đó bạn sẽ biết được cách tạo mới, thực thi, biến hóa và xóa stored procedure .

1. Stored Procedure là gì?

Stored procedure là tập hợp một hoặc nhiều câu lệnh T-SQL thành một nhóm đơn vị xử lý logic và được lưu trữ trên Database Server. Khi một câu lệnh gọi chạy stored procedure lần đầu tiên thì SQL Server sẽ chạy nó và lưu trữ vào bộ nhớ đệm, gọi là plan cache, những lần tiếp theo SQL Server sẽ sử dụng lại plan cache nên sẽ cho tốc độ xử lý tối ưu.

banquyen png

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Stored procedure rất tiện nghi cho người quản trị database ( DBA ), nó giúp DBA tạo ra những nhóm câu lệnh và gửi đến một bô phận khác mà họ sẽ không cần chăm sóc đến nội dung bên trong stored procedure có gì, họ chỉ chăm sóc đến tham số nguồn vào và đầu ra .
Ví dụ bạn viết một stored procedure lấy list loại sản phẩm bán chạy theo ngày, sau đó bạn gửi stored này qua bộ phận development kèm theo tài liệu hướng dẫn sử dụng thì lúc này bộ phận DEV không cận chăm sóc đến nội dung bên trong của stored mà chỉ cần thông tin tham số truyền vào và tác dụng trả về của stored .

2. Tạo Stored Procedure trong SQL Server

Chúng ta hãy mở màn bằng những ví dụ đơn thuần nhất nhé. Giả sử mình có câu truy vấn lấy list mẫu sản phẩm như sau :

SELECT 
 product_name, 
 list_price
FROM 
 production.products
ORDER BY 
 product_name;

Để tạo một stored procedure chứa câu truy vấn này thì mình sẽ viết như sau :

CREATE PROCEDURE uspProductList
AS
BEGIN
    SELECT 
        product_name, 
        list_price
    FROM 
        production.products
    ORDER BY 
        product_name;
END;

Như vậy cú pháp tạo stored procedure như sau :

CREATE PROCEDURE stored_name
AS
BEGIN
    ....
END;

Trong đó stored_name là tên của stored mà bạn muốn đặt. Như ở ví dụ ở trên thì tên của nó là uspProductList. Đối với câu lệnh CREATE PROCEDURE thì bạn có thể rút ngắn thành CREATE PROC.

Bây giờ bạn hãy chạy câu SQL tạo stored bằng cách click vào nút Execute ở trên thanh công cụ như hình chụp dưới đây .

SQL Server Stored Procedure Compiling png

Nếu bạn làm đúng toàn bộ thì sẽ nhận được hiệu quả là :

Commands completed successfully.

Để xem danh sách stored procedure đã tạo trong SQL Server thì bạn hãy vào database -> Programmability > Stored Procedures. Trường hợp không xuất hiện stored vừa tạo thì hãy click dấu xoay tròn để reload.

Xem thêm: Deep sleep là gì

SQL Server Stored Procedure Object Explorer png

3. Gọi Stored Procedure trong SQL Server

Để gọi một stored procedure thì bạn sử dụng lệnh EXECUTE hoặc EXEC theo sau là tên của stored.

EXECUTE sp_name;

Hoặc

EXEC sp_name;

Như ở ví dụ phần 2 thì hiệu quả sẽ như hình sau :

SQL Server Stored Procedure output png

4. Thay đổi Stored Procedure trong SQL Server

Để đổi khác stored thì bạn sử dụng lệnh ALTER PROCEDURE và tên của stored sẽ nằm phía sau .

Ví dụ giờ muốn muốn thay đổi cách sắp xếp kết quả trả về từ product_name thành list_price của spuspProductList thì viết như sau:

ALTER PROCEDURE uspProductList
    AS
    BEGIN
        SELECT 
            product_name, 
            list_price
        FROM 
            production.products
        ORDER BY 
            list_price 
    END;

Hoặc bạn click chuột phải vào stored cần sửa, sau đó chọn menu Modify thì nó sẽ hiển thị ra một trang query mới với cấu trúc của stored cũ .

SQL Server Stored Procedure modifying png

5. Xóa Stored Procedure trong SQL Server

Để xóa stored procedure thì bạn sử dụng lệnh DROP PROCEDURE hoặc DROP PROC.

DROP PROCEDURE sp_name;
# Hoặc
DROP PROC sp_name

Trong đó sp_name là tên của stored muốn xóa.

Xem thêm: Neocortex là gì

Ví dụ mình muốn xóa stored procedure có tên là uspProductList thì sẽ viết như sau:

DROP PROCEDURE uspProductList;

Như vậy trong bài này đã ra mắt khái niệm stored procedure là gì, và qua đây bạn cũng đã biết những thao tác như : Tạo stored, sửa stored, chạy stored và xóa stored. Chúc bạn học tốt và hẹn gặp lại bài tiếp theo .

Rate this post
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments