Bài giảng hệ quản trị cơ sở dữ liệu chương 3 lê thị minh nguyện

6 13 0
Bài giảng hệ quản trị cơ sở dữ liệu chương 3   lê thị minh nguyện

Đang tải... (xem toàn văn)

Thông tin tài liệu

8/25/2017 Nội dung Chương Thủ tục nội (Store procedure) GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn Khái niệm Phân loại Thủ tục với tham số đầu vào Thủ tục có dùng return Thủ tục với tham số đầu Bảng tạm thủ tục Hệ quản trị Cơ sở liệu Khái niệm Phân loại • Store procedure (thủ tục): tập hợp chứa dòng lệnh, biến • Thủ tục hệ thống cấu trúc điều khiển ngôn ngữ Transaction-SQL dùng để thực hành động • Bắt đầu chữ sp_ hầu hết tất thủ tục hệ thống lưu trữ bên CSDL Master • Lợi ích thủ tục • Thủ tục người dùng xây dựng • Tối ưu hóa việc phân tích, biên dịch thực thi câu lệnh • Thực yêu cầu câu lệnh đơn giản thay phải sử dụng nhiều dịng lệnh SQL thực thi  làm giảm thiểu lưu thông mạng • Tăng khả bảo mật cấp phát quyền thơng qua thủ tục • Tốc độ xử lý thủ tục nội nhanh Hệ quản trị Cơ sở liệu Hệ quản trị Cơ sở liệu 8/25/2017 Tạo thủ tục Tạo thủ tục • Gọi thực thủ tục: Cú pháp: EXEC[UTE] Tên_thủ_tục Ví dụ: EXEC sp_MaxSLHang • Thay đổi nội dung thủ tục Cú pháp: ALTER PROC[EDURE] Tên_thủ_tục AS [Declare biến_cục_bộ] Các_lệnh • Tạo thủ tục • Cú pháp: CREATE PROC[EDURE] Tên_thủ_tục AS [Declare biến_cục_bộ] các_lệnh Hệ quản trị Cơ sở liệu Thủ tục với tham số đầu vào Hệ quản trị Cơ sở liệu Thủ tục với tham số đầu vào (tt) • Tạo thủ tục tên danhsach có tham số truyền vào tên nhân viên • Cú pháp: Liệt kê mã nhân viên, họ lót, tên nhân viên, ngày vào làm, lương: CREATE PROC sp_danhsach @ten nvarchar(20) CREATE PROC[EDURE] Tên_thủ_tục @Tên_tham_số kiểu_dữ_liệu [= giá_trị] AS [Declare biến_cục_bộ] các_lệnh AS SELECT MaNV, HoLot, TenNV, NgayVaoLam, Luong FROM NhanVien WHERE TenNV= @ten • Thực thi: Hệ quản trị Cơ sở liệu sp_danhsach ‘Linh’ exec sp_danhsach ‘Linh’ Hệ quản trị Cơ sở liệu 8/25/2017 Thủ tục với tham số đầu vào (tt) Thủ tục với tham số đầu vào (tt) • Sửa ALTER PROC sp_danhsach @ten nvarchar(20) AS IF EXISTS(SELECT * FROM NhanVien WHERE TenNV = @ten) SELECT MaNV, HoLot, TenNV, NgayVaoLam, Luong FROM WHERE NhanVien TenNV= @ten ELSE print ‘không tồn nhân viên tên ’ + @ten Hệ quản trị Cơ sở liệu Thủ tục với tham số đầu vào (tt) • Tạo thủ tục tăng lương nhân CREATE PROC asc_salary(@idemp int) viên với tham số đầu vào mức AS BEGIN mã nhân viên Nếu lương nhân DECLARE @salary INT viên lớn 1000$ tăng SELECT @salary=Luong 150$, ngược lại tăng 100$ FROM NhanVien WHERE MaNV=@idemp If @salary>1000 UPDATE NhanVien SET Luong=Luong+150 WHERE MaNV=@idemp Else UPDATE NhanVien SET Luong=Luong+100 WHERE MaNV=@idemp END Hệ quản trị Cơ sở liệu 10 Thủ tục có dùng return • Tạo thủ tục tăng lương CREATE PROCEDURE asc_salary(@idemp int) nhân viên lên lần, lần AS BEGIN tăng 50$ • Các thủ tục trả giá trị số nguyên để thông báo thủ tục thực thành công hay thất bại SQL Server định nghĩa sẳn tập giá trị trả nằm khoảng [-99;0] Giá trị cho biết thủ tục thực thành công, giá trị lại cho biết nguyên nhân lỗi xảy DECLARE @count int SET @count=1 WHILE @count

Ngày đăng: 22/11/2023, 14:44

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan