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

Chương 4 -Giáo trình SQL server 2000

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 (123.69 KB, 17 trang )

SQL SERVER, 1st Edition. Chapter 4 Slide 1
Hệ quản trị CSDL SQL Server
CHƯƠNG 4: THỦ TỤC NỘI TẠI
CHƯƠNG 4: THỦ TỤC NỘI TẠI
SQL SERVER, 1st Edition. Chapter 4 Slide 2
Chương 4: Thủ tục nội tại
Nội dung




SQL SERVER, 1st Edition. Chapter 4 Slide 3
4.1. Khái niệm
Thủ tục nội tại (store procedure) là một tập hợp chứa
các dòng lệnh, các biến, các cấu trúc dùng để thực
hiện một hành động nào đó.
Nội dung của thủ tục nội tại sẽ được lưu trữ tại CSDL
của MS SQL SERVER
Phạm vi hoạt động của thủ tục nội tại do người dùng
tạo ra chỉ có tính cục bộ bên trong một CSDL mà nó
lưu trữ.
Các NNLT khác có thể gọi thủ tục nội tại một cách dễ
dàng.
Thực thi nhanh vì nội dung bên trong thủ tục đã
được phân tích cú pháp khi chúng được tạo mới.
SQL SERVER, 1st Edition. Chapter 4 Slide 4
4.1.1. Tạo mới thủ tục nội tại
Các bước thực hiện
SQL SERVER, 1st Edition. Chapter 4 Slide 5
4.1.1. Tạo mới thủ tục nội tại
Các bước thực hiện


SQL SERVER, 1st Edition. Chapter 4 Slide 6
4.1.1. Tạo mới thủ tục nội tại
Ngoài ra có thể tạo mới thủ tục nội tại bằng lệnh CREATE
PROCEDURE
Cú pháp:
!"#"$!% "&'!"())
*)))+,-).
.
#/
0&" 1#!"2())3
).
SQL SERVER, 1st Edition. Chapter 4 Slide 7
4.1.1. Tạo mới thủ tục nội tại
Trong đó
())45.6+7 /&1
2())4.6,8,+9
8
).416.,
14

input (không cần ghi)

output
SQL SERVER, 1st Edition. Chapter 4 Slide 8
4.1.1. Tạo mới thủ tục nội tại
Ví dụ:
CREATE PROCEDURE sp_tblTong
AS
DECLARE @ten VARCHAR(30),
@sl INT

SELECT @ten = TenHang,
@sl = SoLuong
FROM tblTong
WHERE (SoLuong=(Select MAX(SoLuong) From tblTong))
PRINT @ten + ' co doanh so ban cao nhat!'
PRINT 'Voi so luong: ' + CAST(@sl AS VARCHAR(10))
SQL SERVER, 1st Edition. Chapter 4 Slide 9
4.1.2. Gọi thực hiện thủ tục nội tại
Chúng ta chỉ có thể thực hiện thủ tục nội tại EXECUTE trong
tiện ích Query Analyzer, hay trong NNLT.
Cú pháp:
":" 0'"3 ()));*
053
Ví dụ
":" '" 5).
<=4
":" 5).
SQL SERVER, 1st Edition. Chapter 4 Slide 10
4.1.3. Hủy bỏ thủ tục nội tại
Khi không cần sử dụng nữa thì chúng ta có thể hủy bỏ nó ra
khỏi CSDL.
Dùng lệnh
&!%$$!% "&'!"())
Ví dụ:
&!%$$!% "&'!"5).
SQL SERVER, 1st Edition. Chapter 4 Slide 11
4.1.4. Ví dụ
Viết thủ tục xóa các sinh viên theo thành phố trong bảng
(>?5>
((5(+(@(

*5>

(
+(.((A(B((5C*5
(+
Gọi thủ tục
(@(@(D< E
SQL SERVER, 1st Edition. Chapter 4 Slide 12
4.1.4. Ví dụ
Viết thủ tục đếm xem có bao nhiêu sinh viên theo thành phố.
((5(+(+(*5>?*5

(
(.(*CFA(
B((5C*5
(+
+(.(*
(@(+(D< E?*5
5*
SQL SERVER, 1st Edition. Chapter 4 Slide 13
4.1.4. Ví dụ
Bài tập: Viết hàm sinh ra mã cán bộ tự động theo quy tắc:
GH+4 2IIIJ
D 2E4K7.H
IIIJ4.6
L&4

Hiện tại Cán bộ có mã cao nhất là CB0024

Thì sinh mã mới là CB0025

SQL SERVER, 1st Edition. Chapter 4 Slide 14
4.1.4. Ví dụ
Bài tập:
((5(+(*JI5

(
+(.(*@
(.(
*@C@ 2?M?N
OJA.
( * C PIIIIP O *@ 
N
(*CP 2PO*?N
(+
SQL SERVER, 1st Edition. Chapter 4 Slide 15
4.2. Sử dụng RETURN trong thủ tục
Thông thường sử dụng lệnh RETURN để thoát khỏi thủ tục
trong trường hợp dữ liệu không hợp lệ.
Ngoài ra RETURN cho phép trả về 1 số nguyên tại nơi đã gọi
thủ tục, khi đó thủ tục trả về giá trị số nguyên, giúp thủ tục có
tính năng như 1 hàm.
Cú pháp
!"'!Q0)7(3
Q,+!"'!QR(-I
SQL SERVER, 1st Edition. Chapter 4 Slide 16
4.3. Thủ tục cập nhật bảng dữ liệu
Thủ tục dạng này sẽ được gọi thực hiện và truyền các giá trị
cho tham số từ bên trong một môi trường khác (các NNLT).
!"#"$!% "&'!"5))(
*L <#!N?

*(L QL#! <#!>I?
*&L QL#! <#!MI?
*$ SQ
#/
2"SQ
SQ/"!SQ%L#'#L?(L?&L?$
L#1'"/*L?*(L?*&L?*$
"Q&
SQL SERVER, 1st Edition. Chapter 4 Slide 17
4.3. Thủ tục cập nhật bảng dữ liệu
Gọi thủ tục
EXEC sp_vattu_them 'TV001','Ti vi 29 inch Sam sung','Bộ',15
Nếu dữ liệu là xâu Unicode: thêm chữ N
EXEC sp_vattu_them 'TV002',N'Tủ lạnh',N'Chiếc',15
Bài tập
:(    +,- . 5 6 
6.

×