Danh mục

Bài giảng SQL server: Chương 5 - Lê Thị Minh Nguyện

Số trang: 28      Loại file: pdf      Dung lượng: 1.07 MB      Lượt xem: 25      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 3,000 VND Tải xuống file đầy đủ (28 trang) 0

Báo xấu

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng SQL server - Chương 5 trình bày những kiến thức về Store Procedure (thủ tục). Các nội dung chính trong chương này gồm: Thủ tục, thủ tục với tham số đầu vào, thủ tục với tham số đầu ra, thủ tục có lệnh trả về Return, sử dụng bảng tạm trong thủ tục, tham số cursor bên trong thủ tục, giao tác (Transaction). Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng SQL server: Chương 5 - Lê Thị Minh Nguyện 10/03/2015 TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN THÀNH PHỐ HỒ CHÍ MINH CHƯƠNG 5. Store Procedure (thủ tục) GV: Lê Thị Minh Nguyện Email: leminhnguyen@itc.edu.vn NỘI DUNG  Khái niệm  Thủ tục  Thủ tục với tham số đầu vào  Thủ tục với tham số đầu ra  Thủ tục có lệnh trả về Return  Sử dụng bảng tạm trong thủ tục  Tham số cursor bên trong thủ tục  Giao tác (Transaction) 1 10/03/2015 1.Khái niệm  Store procedure (thủ tục): là một tập hợp chứa các dòng lệnh, các biến và các cấu trúc điều khiển trong ngôn ngữ Transaction-SQL dùng để thực hiện một hành động nào đó.  Các nét đặc trưng  Tên thủ tục  Tham số truyền giá trị vào  Tham số đón nhận giá trị ra  Trong thủ tục nội tại được phép gọi thực thi một thủ tục nội tại khác  Có tính cục bộ bên trong một cơ sở dữ liệu lưu trữ thủ tục đó  Có thể gọi thực hiện trong môi trường không phải Microsoft SQL Server. 1.Khái niệm Lợi ích của thủ tục  Tốc độ xử lý của các thủ tục nội tại rất nhanh.  Việc tổ chức và phân chia các xử lý thành hai nơi khác nhau: tại máy chủ hoặc tại máy trạm sẽ giúp giảm thời gian xây dựng ứng dụng. Thủ tục hệ thống  Bắt đầu bằng chữ sp_ và hầu hết tất cả các thủ tục hệ thống được lưu trữ bên trong CSDL Master. 2 10/03/2015 2.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 2.Thủ tục Ví dụ 1: cho lược đồ CSDL như sau: MAT_HANG(MaMH, TenMH, DVT, MaNCC, DonGia) PHIEU_XUAT(SoPX, NgayXuat, #SoDH) CTPX(Ma_MH, SoPX, SLXuat) HOA_DONDH(SoDH, NgayDat) CTDH(SoDH, MaMH, SLDH) 3 10/03/2015 2.Thủ tục Ví dụ 1: cho lược đồ CSDL như sau: NHANVIEN(MaNV, HoTen, NgaySinh, NgayVaoLam, MaPhong, ChucVu, LuongCB, PhuCap) Phong(MaPh, TenPh, DiaDiem) DEAN(MaDA, TenDA, KinhPhi, NgayKhoiCong) PHANCONG(MaNV,MaDA, NgayBatDau, NgayKetThuc) 2.Thủ tục  Ví dụ 1: Cho biết mặt hàng nào có doanh số bán cao nhất trong tháng 01/20014. CREATE PROC sp_MaxSLHang AS Declare @TenMH varchar(50), @MaxSL int Select @TenMH=RTRIM(TenMH), @MaxSL=SLXuat*dongia From CTPX, PHIEU_XUAT, MAT_HANG Where CTPX.SoPX= PHIEU_XUAT.SoPX And MAT_HANG.MaMH=CTPX.MaMH And convert(char(7), NgayXuat, 21)= ‘2014-01’ And SLXuat *dongia= (Select Max(SLXuat*dongia) From CTPX, PHIEU_XUAT Where CTPX.SoPX=PHIEU_XUAT.SoPX And convert(char(7), NgayXuat, 21)= ‘2014-01’) Print @TenMH + ‘Co doanh so cao nhat la’ + Cast(@MaxSL as char(10)) 4 10/03/2015 2.Thủ tục Gọi thực hiện 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. 2.Thủ tục ALTER PROC sp_MaxSLHang AS Declare @TenMH varchar(50), @MaxSL int IF NOT EXISTS(Select Ma_mh From CTPX, PHIEU_XUAT Where CTPX.SoPX= PHIEU_XUAT.SoPX And convert(char(7), NgayXuat, 21)= ‘2014-01’) Begin Print ‘thang 01 nam 2014 chưa bán mặt hàng nào cả’ Return End Select @TenMH=RTRIM(TenMH), @MaxSL=SLXuat From CTPX, PHIEU_XUAT, MAT_HANG Where CTPX.SoPX= PHIEU_XUAT.SoPX And MAT_HANG.MaMH=CTPX.MaMH And convert(char(7), NgayXuat, 21)= ‘2007-01’ And SLXuat = (Select Max(SLXuat) From CTPX, PHIEU_XUAT Where CTPX.SoPX=PHIEU_XUAT.SoPX And convert(char(7), NgayXuat, 21)= ‘2007-01’) Print @TenMH + ‘Co doanh so cao nhat la’ + Cast(@MaxSL as char(10)) 5 10/03/2015 3.Thủ tục với tham số đầu vào Cú pháp: 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 3.Thủ tục với tham số đầu vào Create Proc sp_Days(@Thang Int, @Nam Int) As Declare @SN Int Set @SN = Case When @Thang In (1,3,5,7,8,10,12) Then 31 When @Thang In (4,6,9,11) Then 30 When @Nam % 4 = 0 Then 29 Else 28 End Return @SN 6 10/03/2015 3.Thủ tục với tham số đầu vào Gọi thực hiện thủ tục Declare @SN int Exec @SN = spr_ngaytrongthang 2,2015 print 'So ngay trong thang 2/2002 la ' + Cast(@SN As Char) 3.Thủ tục với tham số đầu vào  Tạo thủ tục tính tổng giá trị của một phiếu xuất hàng hoá với tham số vào là số phiếu xuất với kiểu dữ liệu là chuỗi. CREATE PROC sp_TongTGXuat @SoPX char(4) AS Declare @TongTG money Select @TongTG=SUM(SLXuat*DGXuat) From CTPX Where @SoPX=SoPX Print ‘Tri gia phieu xuat’ + CAST(@SoPX AS char(4)) Print ‘là: ’ + CAST(@TongTG as Varchar(15))  Gọi thực hiện thủ tục Exec sp_TongTGXuat ‘PX01’  Hoặc: Exec sp_TongTGXuat @SoPX=‘PX01’ ...

Tài liệu được xem nhiều:

Tài liệu liên quan: