1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng điện tử môn tin học: Procedures và Funtions doc

23 531 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 531 KB

Nội dung

1 PROCEDURES và FUNCTIONS 11 11 2 1. Khái niệm cơ bản về Stored procedure: 1. Khái niệm cơ bản về Stored procedure:  Stored procedure (thủ tục) là một tập các lệnh Stored procedure (thủ tục) là một tập các lệnh T-SQL và một số cấu trúc điều kiện T-SQL và một số cấu trúc điều kiện  Một khi Stored procedure được thiết lập thì Một khi Stored procedure được thiết lập thì những ứng dụng cần thiết tương tự chỉ cần những ứng dụng cần thiết tương tự chỉ cần thực gọi để thực hiện Store procedure thực gọi để thực hiện Store procedure  Thủ tục lưu được tối ưu hoá lần đầu tiên khi Thủ tục lưu được tối ưu hoá lần đầu tiên khi chúng được biên dịch. chúng được biên dịch.  Thủ tục nâng cao an toàn thông tin thông qua Thủ tục nâng cao an toàn thông tin thông qua việc cô lập hoặc mã hóa việc cô lập hoặc mã hóa 3  System sp: System sp: Được lưu trữ trong CSDL master và Được lưu trữ trong CSDL master và được đặt tên với tiếp đầu ngữ là sp. Chúng đóng vai được đặt tên với tiếp đầu ngữ là sp. Chúng đóng vai trò khác nhau của các tác vụ được cung cấp trong trò khác nhau của các tác vụ được cung cấp trong SQL Server. SQL Server. Ví dụ: Ví dụ: Sp_help Sp_help , , Sp_helpConstraint,… Sp_helpConstraint,…  Local sp: Local sp: Được lưu trữ trong các CSDL của người Được lưu trữ trong các CSDL của người dùng, nó thực thi các tác vụ (Task) trong Database dùng, nó thực thi các tác vụ (Task) trong Database chứa nó. chứa nó.  Khi thực thi thủ tục, cần cung cấp các giá trị của Khi thực thi thủ tục, cần cung cấp các giá trị của tham số của các thủ tục nếu có. Một thủ tục có thể tham số của các thủ tục nếu có. Một thủ tục có thể được gọi thực thi hoặc tự động thực thi khi SQL được gọi thực thi hoặc tự động thực thi khi SQL Server khởi động. Gọi thực thi bằng từ khóa Server khởi động. Gọi thực thi bằng từ khóa EXCUTE EXCUTE . . 4 2. Tạo Store Procedure: 2. Tạo Store Procedure: CREATE PROC CREATE PROC [ [ EDURE EDURE ] procedure_name ] procedure_name [ [ { @parameter data_type } { @parameter data_type } [ [ VARYING VARYING ] [ = default ] [ ] [ = default ] [ OUTPUT OUTPUT ] ] ] ] [ , n ] [ , n ] [ [ WITH WITH { { RECOMPILE RECOMPILE | | ENCRYPTION ENCRYPTION } } ] ] [ [ FOR REPLICATION FOR REPLICATION ] ] AS AS sql_statement [ n ] sql_statement [ n ] 5 Procedure_name Procedure_name Tên phải tuân theo qui tắc định danh Tên phải tuân theo qui tắc định danh RECOMPILE RECOMPILE Thông thường, thủ tục sẽ được phân Thông thường, thủ tục sẽ được phân tích, tối ưu và dịch sẵn ở lần gọi đầu tích, tối ưu và dịch sẵn ở lần gọi đầu tiên. Nếu tuỳ chọn tiên. Nếu tuỳ chọn With Recompile With Recompile được chỉ định, thủ tục sẽ được dịch lại được chỉ định, thủ tục sẽ được dịch lại mỗi khi được gọi. mỗi khi được gọi. ENCRYPTION ENCRYPTION Thủ tục sẽ được mã hoá nếu tuỳ chọn Thủ tục sẽ được mã hoá nếu tuỳ chọn With Encryption With Encryption được chỉ định. Nếu được chỉ định. Nếu thủ tục đã được mã hoá, ta không thể thủ tục đã được mã hoá, ta không thể xem được nội dung của thủ tục, do đó xem được nội dung của thủ tục, do đó nên lưu lại bản gốc nên lưu lại bản gốc VARYING VARYING Chỉ dùng với biến Chỉ dùng với biến Cursor Cursor 6 VD VD : : Create Procedure Create Procedure sp_SinhVien sp_SinhVien @NamSinh @NamSinh int int AS AS Select Select * * From From tbl_SinhVien tbl_SinhVien Where Where Year Year (NgaySinh) = @NamSinh (NgaySinh) = @NamSinh 3. Thực thi Store Procedure: 3. Thực thi Store Procedure: EXEC EXEC [ [ ute ute ] ] procedure_name procedure_name [[@parameter =]{value |@variable [ [[@parameter =]{value |@variable [ OUTPUT OUTPUT ] | ] | [ [ DEFAULT DEFAULT ]] ]] [,…n] [,…n] VD VD : : EXEC EXEC sp_SinhVien 1984 sp_SinhVien 1984 7 Create Proc Create Proc Sp_ChenKhachHang Sp_ChenKhachHang @MaKH varchar (10), @TenKH nvarchar (50), @MaKH varchar (10), @TenKH nvarchar (50), @Address nvarchar (50), @Phone varchar (24), @Address nvarchar (50), @Phone varchar (24), @Fax nvarchar (24), @mail nvarchar (50) @Fax nvarchar (24), @mail nvarchar (50) AS AS Insert Into Insert Into KhachHang (MaKH, TenKH, Address, KhachHang (MaKH, TenKH, Address, Phone, Fax, eMail) Phone, Fax, eMail) Values Values (@MaKH, @TenKH, @Address, @Phone, (@MaKH, @TenKH, @Address, @Phone, @Fax, @Mail) @Fax, @Mail) Gọi thủ tục: Gọi thủ tục: Sp_ChenKhachHang Sp_ChenKhachHang 'KH01', N'Trường Tin học ABC', 'KH01', N'Trường Tin học ABC', '12 Nguyễn Văn Bảo', '886699', '791175', '12 Nguyễn Văn Bảo', '886699', '791175', '@yahoo.com' '@yahoo.com' 8 a. Store Procedure and a. Store Procedure and Input Input Parameters: Parameters: Create Procedure Create Procedure sp_NhanVien sp_NhanVien @Ho @Ho nvarchar nvarchar (50), (50), @Ten @Ten nvarchar nvarchar (10) (10) As As Select Select * * From From NhanVien NhanVien Where Where Ho = @Ho Ho = @Ho And And Ten = @Ten Ten = @Ten Câu 2.10. trong Bài tập - Bài7 Câu 2.10. trong Bài tập - Bài7 Create Procedure Create Procedure sp_ThongTinHoaDonSo sp_ThongTinHoaDonSo @So_HoaDon @So_HoaDon int int As As Select Select d.MaNhanVien, d.NgayGiaoHang, d.NoiGiaoHang d.MaNhanVien, d.NgayGiaoHang, d.NoiGiaoHang From From Dondathang Dondathang as as d d INNER JOIN INNER JOIN NhanVien NhanVien as as n n ON ON d.MaNhanVien = n.MaNhanVien d.MaNhanVien = n.MaNhanVien Where Where SoHoaDon = @So_HoaDon SoHoaDon = @So_HoaDon 9 a. Store Procedure and a. Store Procedure and Default Default Parameters: Parameters: Create Procedure Create Procedure sp_NhanVien sp_NhanVien @Ho @Ho nvarchar nvarchar (50) , (50) , @Ten @Ten nvarchar nvarchar (10) = '%' (10) = '%' As As Select Select * * From From NhanVien NhanVien Where Where Ho Like @Ho Ho Like @Ho And And Ten Like @Ten Ten Like @Ten Câu 2.10. trong Bài tập - Bài7 Câu 2.10. trong Bài tập - Bài7 Create Procedure Create Procedure sp_ThongTinHoaDonSo sp_ThongTinHoaDonSo @So_HoaDon @So_HoaDon int = int = 1 1 As As Select Select d.MaNhanVien, d.NgayGiaoHang, d.NoiGiaoHang d.MaNhanVien, d.NgayGiaoHang, d.NoiGiaoHang From From Dondathang Dondathang as as d d INNER JOIN INNER JOIN NhanVien NhanVien as as n n ON ON d.MaNhanVien = n.MaNhanVien d.MaNhanVien = n.MaNhanVien Where Where SoHoaDon = @So_HoaDon SoHoaDon = @So_HoaDon 10 a. a. Store Procedure and Store Procedure and Output Output Parameters: Parameters: Create Procedure Create Procedure sp_GiaBan sp_GiaBan @MaHang @MaHang int int , @GiaBan , @GiaBan money money OUTPUT OUTPUT AS AS Select Select @GiaBan = Giaban @GiaBan = Giaban From From MatHang MatHang Where Where MaHang = @MaHang MaHang = @MaHang Gọi thủ tục: Gọi thủ tục: Declare Declare @price @price money money Execute Execute sp_GiaBan sp_GiaBan 77, @price 77, @price Output Output Print Print Convert Convert ( ( varchar varchar (10), @price) (10), @price) [...]... như sau trên cơ sở dữ liệu:  Bổ sung thêm môn học “cơ sở dữ liệu” có mã “TI-005” và số đơn vị học trình là 5 vào bảng “MONHOC”  Nhập điểm thi môn “cơ sở dữ liệu” cho các sinh viên học lớp có mã C24102 (tức là bổ sung thêm vào bảng DIEMTHI các bản ghi với cột MAMONHOC nhận giá trị TI-005, cột MASV nhận giá trị lần lượt là mã các sinh viên học lớp có mã C24105 và các cột điểm là NULL) 11 VD: Nếu thực... MaLop=@maLop If @@ERROR 0 Then Set @KiemTra = 1 SET @KiemTra = @@ERROR Else Set @KiemTra = 0 END 13 Ghi chú: Khi thực thi SP có tham số OUTPUT ta phải khai báo (DECLARE) một biến trước khi gọi SP thực thi và phải có từ khóa OUTPUT ngay sau tham số đó VD: gọi thực thi ví dụ trên DECLARE @Kiem_Tra int EXEC sp_LenDanhSachDiem 'TI-005', N'Cơ sở dữ liệu', 5, 'C24102‘, @Kiem_Tra OUTPUT PRINT @KiemTra 14 VD (tt): . Ten = @Ten Ten = @Ten Câu 2.10. trong Bài tập - Bài7 Câu 2.10. trong Bài tập - Bài7 Create Procedure Create Procedure sp_ThongTinHoaDonSo sp_ThongTinHoaDonSo @So_HoaDon @So_HoaDon int int As As Select Select . Like @Ten Ten Like @Ten Câu 2.10. trong Bài tập - Bài7 Câu 2.10. trong Bài tập - Bài7 Create Procedure Create Procedure sp_ThongTinHoaDonSo sp_ThongTinHoaDonSo @So_HoaDon @So_HoaDon int.  Bổ sung thêm môn học Bổ sung thêm môn học “cơ sở dữ liệu” “cơ sở dữ liệu” có mã có mã “TI-005” “TI-005” và số đơn vị học trình là 5 vào bảng và số đơn vị học trình là 5 vào bảng “MONHOC” “MONHOC”

Ngày đăng: 11/08/2014, 22:22

TỪ KHÓA LIÊN QUAN