Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
277,5 KB
Nội dung
Hệ quảntrịCSDL SQL Server CHƯƠNG 4: THỦ TỤC NỘI TẠI ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide Chương 4: Thủ tục nội Nội dung Khái niệm Tham số bên thủ tục nội Một số vấn đề khác thủ tục nội Giao tác (transaction) ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1 Khái niệm Thủ tục nội (store procedure) tập hợp chứa dòng lệnh, biến, cấu trúc dùng để thực hành động Nội dung thủ tục nội lưu trữ CSDL MS SQL SERVER Phạm vi hoạt động thủ tục nội người dùng tạo có tính cục bên CSDL mà lưu trữ Các NNLT khác gọi thủ tục nội cách dễ dàng Thực thi nhanh nội dung bên thủ tục phân tích cú pháp chúng tạo ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1.1 Tạo thủ tục nội Các bước thực ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1.1 Tạo thủ tục nội Các bước thực ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1.1 Tạo thủ tục nội Ngồi tạo thủ tục nội lệnh CREATE PROCEDURE Cú pháp: CREATE PROCEDURE Ten_Thu_Tuc @tên_tham_số kiểu_dữ_liệu loại AS [DECLARE Bien_cuc_bo] Các_lệnh ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1.1 Tạo thủ tục nội Trong Ten_thu_tuc: phải CSDL Bien_cuc_bo: biến sử dụng tính tốn tạm thời Các_lệnh: Là lệnh thực Loại: • input (khơng cần ghi) • output ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1.1 Tạo thủ tục nộ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)) ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1.2 Gọi thực thủ tục nội Chúng ta thực thủ tục nội EXECUTE tiện ích Query Analyzer, hay NNLT Cú pháp: EXEC[UTE] @biến [output] Ten_thu_tuc giá_trị | Ví dụ EXECUTE sp_tblTong Hoặc: EXEC sp_tblTong ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1.3 Hủy bỏ thủ tục nội Khi khơng cần sử dụng hủy bỏ khỏi CSDL Dùng lệnh DROP PROCEDURE Ten_thu_tuc Ví dụ: DROP PROCEDURE sp_tblTong ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 10 4.1.4 Ví dụ Viết thủ tục xóa sinh viên theo thành phố bảng sinhvien (masv char(5), char(5)) create procedure xoasinhvien @tp char(5) as begin delete from sinhvien where = @tp end Gọi thủ tục exec xoasinhvien ‘HCM’ ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 11 4.1.4 Ví dụ Viết thủ tục đếm xem có sinh viên theo thành phố create procedure dem @tp char(5), @t int output as begin select @t = count(*) from sinhvien where = @tp end declare @tong int exec dem ‘HCM’ , @tong output print @tong ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 12 4.1.4 Ví dụ Bài tập: Viết hàm sinh mã cán tự động theo quy tắc: Mã cán có dạng: CB0001 ‘CB’ : quy định (ln có) 0001 : số VD: • Hiện Cán có mã cao CB0024 • Thì sinh mã CB0025 ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 13 4.1.4 Ví dụ Bài tập: Create procedure sinhkhoa @s char(10) output as begin declare @max int select @max = max(cast(substring(MCB,3,4) as int)) + from tblcanbo set @s = '0000' + rtrim(cast(@max as char(4))) set @s = 'CB' + right(@s,4) end ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 14 4.2 Sử dụng RETURN thủ tục Thơng thường sử dụng lệnh RETURN để khỏi thủ tục trường hợp liệu không hợp lệ Ngoài RETURN cho phép trả số nguyên nơi gọi thủ tục, thủ tục trả giá trị số nguyên, giúp thủ tục có tính hàm Cú pháp RETURN [so_nguyen] Nếu sử dụng RETURN trả ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 15 4.3 Thủ tục cập nhật bảng liệu Thủ tục dạng gọi thực truyền giá trị cho tham số từ bên môi trường khác (các NNLT) CREATE PROCEDURE sp_vattu_them @sMaVT CHAR(4), @sTenVT NVARCHAR(50), @sDVT NVARCHAR(30), @nPhanTram INT AS BEGIN INSERT INTO VATTU(MAVT,TenVT, DVT, PhanTram) VALUES (@sMaVT, @sTenVT, @sDVT, @nPhanTram) END ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 16 4.3 Thủ tục cập nhật bảng liệu Gọi thủ tục EXEC sp_vattu_them 'TV001','Ti vi 29 inch Sam sung','Bộ',15 Nếu liệu xâu Unicode: thêm chữ N EXEC sp_vattu_them 'TV002',N'Tủ lạnh',N'Chiếc',15 Bài tập Xem đoạn kiểm tra liệu nhập vào tài liệu ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 17 ... trúc dùng để thực hành động Nội dung thủ tục nội lưu trữ CSDL MS SQL SERVER Phạm vi hoạt động thủ tục nội người dùng tạo có tính cục bên CSDL mà lưu trữ Các NNLT khác gọi thủ tục nội cách dễ dàng... Ten_thu_tuc giá _trị | Ví dụ EXECUTE sp_tblTong Hoặc: EXEC sp_tblTong ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1.3 Hủy bỏ thủ tục nội Khi khơng cần sử dụng hủy bỏ khỏi CSDL Dùng lệnh... ctsdhv@yahoo.com SQL SERVER, 1st Edition Chapter Slide 4.1.1 Tạo thủ tục nội Trong Ten_thu_tuc: phải CSDL Bien_cuc_bo: biến sử dụng tính tốn tạm thời Các_lệnh: Là lệnh thực Loại: • input (khơng cần