Tải bản đầy đủ (.ppt) (32 trang)

Stored procedure

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (156.81 KB, 32 trang )

STORED PROCEDURE


Nội dung chi tiết












Giới thiệu
Biến
Lệnh IF … ELSE
Lệnh CASE
Lệnh While
Một số lệnh thông dụng
Tạo SP
Hiệu chỉnh SP
Xóa SP
Xem thông tin về SP
Ví dụ

2



Giới thiệu






Store procedure (SP) là một tập các câu lệnh SQL (chương
trình) được biên dịch và lưu trữ sẵn trên SQL Server
SP cho phép
Chứa nhiều câu lệnh, có thể gọi các SP khác
Nhận các tham số đầu vào, đầu ra
Trả về trạng thái thực hiện (thành công hay thất bại) và
nguyên nhân
Một số loại SP
System stored procedure: SP hệ thống, có tên bắt đầu
bằng sp_
User defined stored procedure: SP do người dùng định
nghĩa
Temporary stored procedure: SP tạm thời, bắt đầu bằng #
3


Giới thiệu (tt)


Quá trình tạo SP
Phân tích cú pháp:






Nếu có lỗi cú pháp thì thông báo lỗi và không tạo SP
Ngược lại tạo SP, tên SP lưu ở sysobjects, văn bản lệnh lưu ở
syscomments

Thi hành SP (lần đầu hoặc biên dịch lại)
Đọc văn bản lệnh ở syscomments
Phân giải tên: liên kết các đối tượng mà SP tham khảo đến
Tối ưu hóa: tạo kế hoạch thi hành nhanh nhất dựa vào
trạng thái của CSDL và cấu trúc câu lệnh
Biên dịch: tạo mã thi hành cho kế hoạch đã được tối ưu
hóa và đặt trong vùng procedure cache
Thi hành SP

4


Giới thiệu (tt)


Ưu điểm khi sử dụng SP
-

-

Cho phép các ứng dụng khác nhau dùng chung xử
lý, đảm bảo tính nhất quán trong truy xuất và xử lý
dữ liệu

Nhanh, giảm lưu lượng mạng

5


Nội dung chi tiết












Giới thiệu
Biến
Lệnh IF … ELSE
Lệnh CASE
Lệnh While
Một số lệnh thông dụng
Tạo SP
Hiệu chỉnh SP
Xóa SP
Xem thông tin về SP
Ví dụ


6


Biến


Biến cục bộ: là một đối tượng cụ thể lưu giữ một giá trị
dữ liệu đơn của một kiểu xác định.

Tên của biến cục bộ được bắt đầu bởi ký hiệu @
Biến cục bộ được khai báo bằng lệnh DECLARE
Ví dụ
DECLARE @sl int, @dbname nvarchar(128)
Biến cục bộ không thể có kiểu dữ liệu là text, ntext
hoặc image.
Biến toàn cục (hệ thống): do SQL tạo ra
Tên bắt đầu bởi ký hiệu @@
Ví dụ: @@rowcount, @@error
-



7


Nội dung chi tiết













Giới thiệu
Biến
Lệnh IF … ELSE
Lệnh CASE
Lệnh While
Một số lệnh thông dụng
Tạo SP
Hiệu chỉnh SP
Xóa SP
Xem thông tin về SP
Ví dụ

8


Lệnh IF … ELSE


Cú pháp
IF <Bieu_thuc_Logic>
[ELSE




Ví dụ
SELECT * FROM NHANVIEN
IF @@rowcount > 0
PRINT N'Có dữ liệu‘
ELSE
PRINT N'Bảng chưa có dữ liệu'
9


Nội dung chi tiết












Giới thiệu
Biến
Lệnh IF … ELSE
Lệnh CASE

Lệnh While
Một số lệnh thông dụng
Tạo SP
Hiệu chỉnh SP
Xóa SP
Xem thông tin về SP
Ví dụ

10


Lệnh CASE
CASE <Bieu_thuc>


Cú pháp

WHEN <Gia_tri_1> THEN <Ket_qua_1>
[WHEN <Gia_tri_2> THEN <Ket_qua_2>]

[ELSE <Ket_qua_khac>]



Ví dụ

END

SELECT Thu =
CASE datepart(w,getdate())

WHEN 1 THEN 'Chu nhat’

WHEN 2 THEN 'Thu hai'

WHEN 3 THEN 'Thu ba’

WHEN 4 THEN 'Thu tu'

WHEN 5 THEN 'Thu nam’

WHEN 6 THEN 'Thu sau'

WHEN 7 THEN 'Thu bay'
END
11


Nội dung chi tiết













Giới thiệu
Biến
Lệnh IF … ELSE
Lệnh CASE
Lệnh While
Một số lệnh thông dụng
Tạo SP
Hiệu chỉnh SP
Xóa SP
Xem thông tin về SP
Ví dụ

12


Lệnh WHILE


Cú pháp

WHILE <Bieu_thuc_Logic>



Ví dụ

DECLARE @Dem int


Cách 2:

SET @Dem = 0

DECLARE @Dem int

WHILE 1=1

SET @Dem = 0

BEGIN

WHILE (@Dem <= 20)

SET @Dem = @Dem + 1

BEGIN

IF (@dem > 20) BREAK

IF (@Dem%2=0) Print @Dem

IF @Dem%2!=0 CONTINUE

SET @Dem = @Dem + 1

ELSE
END


Print @Dem

END

13


Nội dung chi tiết












Giới thiệu
Biến
Lệnh IF … ELSE
Lệnh CASE
Lệnh While
Một số lệnh thông dụng
Tạo SP
Hiệu chỉnh SP
Xóa SP
Xem thông tin về SP

Ví dụ

14


Một số lệnh thông dụng


RETURN [Bieu_thuc_nguyen]
-



Dùng để thoát khỏi SP
Ví dụ
RETURN
RETURN 0

RETURN (1)

PRINT <Chuoi | @Bien>
-

Dùng để xuất kết quả, giá trị ra màn hình
Ví dụ
PRINT ‘ABC’ PRINT @Dem
PRINT GETDATE()

15



Một số lệnh thông dụng (tt)


BREAK



Dùng để thoát khỏi vòng lặp
CONTINUE
Dùng để trở về đầu vòng lặp
-

16


Nội dung chi tiết












Giới thiệu

Biến
Lệnh IF … ELSE
Lệnh CASE
Lệnh While
Một số lệnh thông dụng
Tạo SP
Hiệu chỉnh SP
Xóa SP
Xem thông tin về SP
Ví dụ

17


Tạo SP








Sử dụng lệnh CREATE PROCEDURE để tạo SP, SP được
lưu ở DB hiện hành
Nếu trong SP có tạo một bảng tạm, thì bảng tạm chỉ tồn
tại khi thực thi SP, bảng tạm sẽ tự động bị xóa khi thi
hành xong SP (bảng tạm có tên bắt đầu bằng ký hiệu #, ví
dụ: #NHANVIEN)
Trong SP không được chứa các câu lệnh: CREATE

PROCEDURE, CREATE RULE, CREATE VIEW, CREATE
TRIGGER
Để thi hành lệnh CREATE PROCEDURE, người dùng phải
là thành viên của một trong các role: sysadmin,
db_owner, db_ddladmin hoặc được cấp quyền CREATE
PROCEDURE

18


Tạo SP (tt)


Cú pháp
CREATE PROC [EDURE] <Ten_Procedure>
[ @<Tham_so> <Kieu_du_lieu> [ = <Gia_tri_mac_dinh> ] [ OUTPUT ] ]
[ ,...n ]
[ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
AS
<Cac_cau_lenh_SQL>

19


Tạo SP (tt)


Giải thích
-


-

-

Ten_Procedure: tên procedure, các SP tạm cục bộ
có ký hiệu # trước tên của SP
@<Tham_so>: tên tham số của procedure
<Kieu_du_lieu>: kiểu dữ liệu của tham số
<Gia_tri_mac_dinh>: giá trị mặc định của tham số
OUTPUT: cho phép tham số nhận giá trị trả về
RECOMPILE: nếu có thêm tùy chọn này thì mỗi lần
thi hành SQL Server sẽ biên dịch lại SP và mã của
SP không được lưu vào vùng đệm của thủ tục
ENCRYPTION: nếu có thêm tùy chọn này thì văn bản
lệnh được mã hóa và lưu trong syscomments
20


Tạo SP (tt)


Ví dụ
CREATE PROC DS_NHANVIEN
AS
SELECT * FROM nhanvien



Để thực thi SP
EXEC[UTE] <Ten_Procedure> [Danh_sach_tham_so]


-

Ví dụ
EXEC DS_NHANVIEN

21


Nội dung chi tiết












Giới thiệu
Biến
Lệnh IF … ELSE
Lệnh CASE
Lệnh While
Một số lệnh thông dụng
Tạo SP
Hiệu chỉnh SP

Xóa SP
Xem thông tin về SP
Ví dụ

22


Hiệu chỉnh SP


Cú pháp
ALTER PROC [EDURE] <Ten_Procedure>
[ @<Tham_so> <Kieu_du_lieu> [ = <Gia_tri_mac_dinh> ] [ OUTPUT ] ]
[ ,...n ]
[ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
AS
<Cac_cau_lenh_SQL>



Ví dụ
ALTER PROC DS_NHANVIEN
AS
SELECT * FROM nhanvien WHERE PHAI= ‘Nam’
23


Nội dung chi tiết













Giới thiệu
Biến
Lệnh IF … ELSE
Lệnh CASE
Lệnh While
Một số lệnh thông dụng
Tạo SP
Hiệu chỉnh SP
Xóa SP
Xem thông tin về SP
Ví dụ

24


Xóa SP


Cú pháp
DROP PROC [EDURE] <Ten_Procedure>




Ví dụ
DROP PROC DS_NHANVIEN

25


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

Tải bản đầy đủ ngay
×