Procedure là một tập hợp các câu lệnh SQL dùng để thực thi một nhiệm vụ nhất định. Nó có thể xem như một hàm trong các ngôn ngữ lập trình. Trong đó, Trigger là một stored procedure được chạy tự động dựa trên những sự kiện mà nó được đăng ký. Khi các sự kiện này xảy ra trong database, nó cũng sẽ được thực thi.
Stored Procedures hay còn gọi là thủ tục lưu trữ. Ví dụ như bạn có một câu lệnh rất dài và phải lặp đi lặp lại nhiều lần. Thay vì cứ phải làm như vậy thì chúng ta sẽ viết một Stored Procedures nhằm mục đích tái sử dụng, bảo trì và dễ dàng nâng cấp sau này.
Sau đây là ví dụ demo cách chúng ta có thể sử dụng và thao tác với một Stored Procedures trong lập trình SQL.
Ví dụ sau đây có câu lệnh lấy Tên và Chức vụ của Nhân viên:
Giờ chúng ta muốn tạo ra 1 Stored Procedure để lưu lại đoạn code trên để sau này có thể dùng lại nhiều lần bằng cách sau:
Như vậy thì cú pháp tạo Stored Procedure là như sau:
CREATE PROCEDURE các bạn có thể viết ngắn gọn thành CREATE PROC
Sau khi đã lưu 1 Stored Procedure chứa 1 đoạn code thì cách gọi như sau:
Cách gọi ngắn gọn hơn sẽ là EXEC + Tên Stored Procedure
Nếu chúng ta thay đổi khi không muốn gọi tên với cả chức vụ nữa mà muốn lấy tên cả mã nhân viên thì sửa như sau:
Thay CREATE bằng ALTER rồi chỉnh sửa câu lệnh. Trường hợp đặc biệt khi bạn “lỡ tay” ấn xóa mà quên luôn phần tên thì cách khắc phục như sau:
Đây sẽ là giao diện nếu các bạn làm đúng và chỉnh sửa tại đây:
Nếu muốn xóa đi, chúng ta chỉ cần thực hiện theo cú pháp “ DROP PROCEDURE + Tên PROC”.
Vì nó cũng giống như những hàm bình thường thì tất nhiên cũng phải có tham số đầu ra và tham số đầu vào. Đây là ví dụ cho việc thêm tham số vào nên chúng ta sẽ chọn ra những nhân viên có trạng thái bằng với trạng thái truyền vào.
Kết quả chúng ta nhận được khi chạy thành công:
Chúng ta hoàn toàn có thể gán giá trị mặc định cho tham số.
Ở đây chúng ta sẽ gán giá trị mặc định là 1 thì khi chạy câu lệnh 1 hay 2 kết quả đều sẽ giống nhau.
Cấu trúc sẽ là:
CREATE PROC <Tên PROC> ( @Tham số 1 + kiểu dữ liệu, @Tham số 2 + kiểu dữ liệu,….)
AS BEGIN <Câu lệnh SQL> END Bên cạnh đó có tham số OUTPUT Cấu trúc sẽ là CREATE PROC <Tên PROC> ( @Tham số 1 + kiểu dữ liệu, @Tham số 2 + kiểu dữ liệu,….,@Tham số đầu ra + kiểu dữ liệu + OUTPUT ) AS BEGIN <Câu lệnh SQL> END |
Chúng ta sẽ thêm OUTPUT vào dữ liệu mà bạn muốn trả về:
Chúng ta chỉnh sửa 1 chút ở đoạn code trên và thêm @SoNhanVien là tham số đầu ra có kiểu dữ liệu là INT và @@ROWCOUNT sẽ là 1 biến cục bộ đếm số lượng bản ghi.
Chúng ta sẽ gán @SoNhanVien = @@ROWCOUNT để trả về số lượng bản ghi sau khi thực hiện câu lệnh SELECT.
Để chứa số bản ghi trả về thì chúng ta phải khai báo 1 biến @COUNT có cùng kiểu dữ liệu INT để chứa giá trị.
Tương tự với các kiểu dữ liệu khác cũng vậy và khi chạy nhớ chạy kèm cả câu khai báo biến như trên nhé. Cuối cùng, qua những hướng dẫn trên, hy vọng các bạn đã hiểu sâu hơn về cách khai báo và lưu trữ một Stored Procedures. Chúc các bạn thành công!
Bộ môn Ứng dụng phần mềm
Trường Cao đẳng FPT Polytechnic cơ sở Hà Nội