Tải bản đầy đủ - 0 (trang)
e. Thay đổi hoặc xoá khung nhìn bằng công cụ

e. Thay đổi hoặc xoá khung nhìn bằng công cụ

Tải bản đầy đủ - 0trang

Tạo và quản lý thủ tục lưu trữ (Stored Procedure)

Một số khái niệm

• Một thủ tục là một đối tượng trong cơ sở dữ liệu bao gồm một tập nhiều câu

lệnh SQL được nhóm lại với nhau với những khả năng sau:

• Các cấu trúc điều khiển (IF, WHILE) có thể được sử dụng trong thủ tục.

• Bên trong thủ tục thường trú có thể sử dụng các biến như trong ngơn ngữ lập trình

nhằm lưu giữ các giá trị tính tốn được, các giá trị được truy xuất được từ cơ sở dữ

liệu.

• Một tập các câu lệnh SQL được kết hợp lại với nhau thành một khối lệnh bên trong một

thủ tục.

• Một thủ tục có thể nhận các tham số truyền vào cũng như có thể trả về các giá trị thông

qua các tham số (như trong các ngơn ngữ lập trình).

• Khi một thủ tục thường trú đã được định nghĩa, nó có thể được gọi thông qua tên thủ

tục, nhận các tham số truyền vào, thực thi các câu lệnh SQL bên trong thủ tục và có thể

trả về các giá trị sau khi thực hiện xong.

100



Sử dụng các thủ tục thường trú trong cơ sở dữ liệu sẽ giúp

tăng hiệu năng của cơ sở dữ liệu, mang lại các lợi ích sau:

 Đơn giản hoá các thao tác trên cơ sở dữ liệu nhờ vào khả năng module

hoá các thao tác này.

 Thủ tục thường trú được phân tích, tối ưu khi tạo ra nên việc thực thi

chúng nhanh hơn nhiều so với việc phải thực hiện một tập rời rạc các

câu lệnh SQL tương đương theo cách thơng thường.

 Thay vì cấp phát quyền trực tiếp cho người sử dụng trên các câu lệnh

SQL và trên các đối tượng cơ sở dữ liệu, ta có thể cấp phát quyền cho

người sử dụng thơng qua các thủ tục thường trú, nhờ đó tăng khả năng

bảo mật đối với hệ thống.



101



Tạo thủ tục lưu trữ

- Thủ tục lưu trữ được tạo thông qua câu lệnh CREATE PROCEDURE.

CREATE PROCEDURE | PROC [(danh_sách_tham_số)]

[WITH RECOMPILE|ENCRYPTION]

AS

BEGIN



END



102



Trong đó:

- Thơng thường, thủ tục sẽ được phân tích, tối ưu và dịch sẵn ở lần gọi đầu

tiên. Nếu tuỳ chọn WITH RECOMPILE được chỉ định, thủ tục sẽ được dịch

lại mỗi khi được gọi.

- Thủ tục sẽ được mã hoá nếu tuỳ chọn WITH ENCRYPTION được chỉ định.

Nếu thủ tục đã được mã hố, ta khơng thể xem được nội dung của thủ tục.



103



- Khai báo tham số của thủ tục:

@

- Nếu khai báo biến trong thân của thủ tục (BEGIN … END) thì phải bổ sung

thêm từ khố DECLARE



104



Ví dụ, Tạo thủ tục lưu trữ để thêm một dòng dữ liệu vào bảng LOAISP:

CREATE PROCEDURE LoaiSP_Them

(@MaLoaiSP nvarchar(10),

@TenLoaiSP nvarchar(40))

AS

BEGIN

INSERT INTO LOAISP VALUES( @MaLoaiSP,



@TenLoaiSP)



END



105



Ví dụ, xây dựng thủ tục cộng 2 số nguyên:

CREATE PROCEDURE CongHaiSo (@a int, @b int)

AS

BEGIN

DECLARE @c int

SET @c=@a+@b

SELECT @c



END



106



Lời gọi thủ tục:

- Lời gọi thủ tục bằng lệnh có thể gọi theo 2 cách:

• Cách 1: [danh_sách_tham_số]

• Cách 2:



EXEC [danh_sách_tham_số]

- Danh sách tham số truyền vào trong lời gọi phải theo đúng thứ tự khai báo

các tham số trong thủ tục lưu trữ.

- Các tham số truyền vào ngăn cách với nhau bằng dấu phẩy và tùy thuộc

vào kiểu dữ liệu của tham số mà giá trị truyền vào có nằm trong dấu nhau

đơn hay khơng.

107



Ví dụ, gọi thủ tục LoaiSP_Them để nhập vào bảng LOAISP một dòng dữ

liệu tuỳ ý:

- Cách 1: LoaiSP_Them ‘DK01’, N’Đồ khô’

- Cách 2: EXEC LoaiSP_Them ‘DK01’, N’Đồ khô’



108



Lời gọi thủ tục bằng công cụ:



109



Sửa thủ tục lưu trữ:

- Thay đổi thủ tục lưu trữ thông qua câu lệnh ALTER PROCEDURE.

ALTER PROCEDURE | PROC



[(danh_sách_tham_số)]



[WITH RECOMPILE|ENCRYPTION]

AS

BEGIN



END



110



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

e. Thay đổi hoặc xoá khung nhìn bằng công cụ

Tải bản đầy đủ ngay(0 tr)

×