- Remote Stored Procedure:
CREATE PROCEDURE
+ Đây là loại thường dùng nhất. Chúng được chứa trong user database và thường được viết để thực hiện một công việc nào đó. Thông thường ta nói stored procedure là nói đến loại này. + Local SP thường được viết bởi DBA hoặc programmer.
- Temporary Stored Procedure:
+ Tương tự như local SP, nhưng các SP này được tạo ra trên TempDB của SQL Server -> chúng sẽ xóa khi connection tạo ra chúng bị cắt đứt hay khi SQL Server down.
+ Temporary SP được chia làm 3 loại:
o Loại Local chỉ được sử dụng bởi connection đã tạo ra chúng.
o Loại Global có thể được sử dụng bởi bất kì connection nào. Permission cho loại global là dành cho mọi người (public) và không thể thay đổi.
o SP được tạo ra trực tiếp trên TempDB khác với 2 loại trên ở chỗ ta có thể thiết lập
permission, chúng tồn tại kể cả sau khi connection tạo ra chúng bị cắt đứt và chỉ biến mất khi SQL Server shut down.
- Extended Stored Procedure:
+ Đây là một loại SP sử dụng một chương trình ngoại vi (extended program) vốn được compiled thành một DLL để mở rộng chức năng hoạt động của SQL Server. Thường bắt đầu bằng tiếp đầu ngữ xp_
+ Ví dụ: xp_sendmail dùng để gởi mail cho một người nào đó, xp_cmdshell dùng để chạy lệnh DOS. Nhiều loại extended stored procedure được xem như system stored procedure.
- Remote Stored Procedure:
+ Là loại SP gọi stored procedure ở server khác.
5.2.8.1. Tạo (Create)
CREATE PROCEDURE PROCEDURE
Mục đích
(Purpose) - Tạo Stored Procedure. Mô hình
(Model)
Cú pháp (Syntax)
CREATE PROCEDURE Tên_SP Các_tham_số AS Các_lệnh - Các_tham_số: + Tên_tham_số Kiểu_dữ_liệu [= Giá_trị_mặc_định] [OUTPUT] Ví dụ (Example)
CREATE PROCEDURE sp_Cong @a INT, @b INT AS DECLARE @kq INT SET @kq = @a + @b PRINT @kq RETURN Giá trị mặc định
của tham số (Purpose)Mục đích - Khi khai báo tham số trong SP, ta có thể khởi tạo giá trị mặc nhiên cho tham số. Khi gọi SP, nếu ta không gửi giá trị cho tham số, thì tham số sẽ lấy giá trị mặc nhiên.
Mô hình (Model) Cú pháp (Syntax)
CREATE PROCEDURE Tên_SP Các_tham_số AS Các_lệnh - Các_tham_số: Phân loại Local (bắt đầu bằng #) Global (bắt đầu bằng ##) SP được tạo ra trực tiếp trên TempDB
+ Tên_tham_số Kiểu_dữ_liệu [= Giá_trị_mặc_định] [OUTPUT]
Ví dụ (Example)
- Tạo SP:
CREATE PROCEDURE sp_Cong2
@a INT, @b INT = 50, @c INT = 100