Danh mục

Function

Số trang: 26      Loại file: ppt      Dung lượng: 113.00 KB      Lượt xem: 20      Lượt tải: 0    
Hoai.2512

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

Thông tin tài liệu:

Khái niệm hàm người dung(user define function):- Hầu hết các ngôn ngữ lập trình, hay cơ sở dữliệu lớn, luôn luôn có một phần mở rộng chophép người dùng tự định nghĩa một số quy tắc,hàm hoặc thủ tục.- User define function giống như storedprocedure của SQL server. Hàm người dùngcũng có thể truyền tham số nhưng không đượcmang thuộc tính OUTPUT. Thay vào đó chúngta dùng câu lệnh RETURN.
Nội dung trích xuất từ tài liệu:
FunctionFUNCTIONFUNCTIONNộidungchitiết Giới thiệu Tạo Function Hiệu chỉnh Function Xóa Function Ví dụ 2Giớithiệu Khái niệm hàm người dùng (user define function): - Hầu hết các ngôn ngữ lập trình, hay cơ sở dữ liệu lớn, luôn luôn có một phần mở rộng cho phép người dùng tự định nghĩa một số quy tắc, hàm hoặc thủ tục. define function giống như stored - User procedure của SQL server. Hàm người dùng cũng có thể truyền tham số nhưng không được mang thuộc tính OUTPUT. Thay vào đó chúng ta dùng câu lệnh RETURN. 3Giớithiệu(tt) Có hai loại hàm do người dùng định nghĩa: -  Hàm người dùng trả về giá trị  Hàm người dùng trả về một bảng dữ liệu 4Giớithiệu Function cho phép: Nhận tham số vào - Gọi hàm bằng lệnh EXECUTE giống như gọi - PROCEDURE (đối với hàm trả về kiểu vô hướng) 5Giớithiệu Chú ý: - Hàm do người dùng định nghĩa không dùng giá trị với kiểu dữ liệu ntext, text, image, cursor, timestamp làm giá trị trả về. - Có thể cung cấp thông tin về lỗi nếu phát sinh. - Có thể sử dụng các hàm do người dùng định nghĩa trong các câu lệnh SQL như SELECT. 6Nộidungchitiết Giới thiệu Tạo Function Hiệu chỉnh Function Xóa Function Ví dụ 7TạoFunction(trảvềgiátrị) Cú pháp CREATEFUNCTION( [@ [=]] [,...n]) RETURNS [AS] BEGIN RETURN END 8TạoFunction(tt) Ví dụ: tính tổng 2 số nguyên CREATEFUNCTIONTONG(@aINT,@bINT)RETURNSINT BEGIN RETURN@a+@b END Gọi Function Cách 1: - PRINT TONG: + STR(DBO.TONG(6,3))  Cách 2: - DECLARE @TONG INT  --EXEC DBO.TONG 6,3  SET @TONG = DBO.TONG(6,3)  SELECT @TONG  9TạoFunction(tt) Hàm tự viết: Chuyển ngày về đạng DDMMYYYY: -create Function dbo.dngayDDMMYYYY(@datesmalldatetime)returns varchar(10)ASBegin return convert(varchar(10),@Date,103)End 10 Ứng dụng hàm người dùng:select MaNV, Hoten, dbo.dngayDDMMYYYY(Ngaysinh), Phaifrom NHANVIEN 11 Hàm người dùng trả về một bảng dữ liệu: - Ngoài giá trị trả về là kiểu số nguyên, s ố thực, kiểu ký tự… Hàm người dùng còn cho phép giá trị trả về là một bảng dữ liệu. Khi đó, công việc này rất giống với VIEW. - Tuy nhiên VIEW không thể sử dụng giá tr ị từ bên ngoài truyền vào. 12TạoFunction(trảvềbảngdữliệu) Cú phápCREATEFUNCTION[owner_name.]ten_ham(@ten_bien[AS]kieu_gia_tri_bien[=default],...)RETURNSTABLEASRETURN(cau_lenh_select)Chúý:phầnthâncủahàmchỉchophépsựxuấthiệnduynhấtcủacâulệnhRETURN.Ngoàira,khôngsửdụngbấtkỳcâulệnhnàokháctrongphầnthâncủahàm. 13Vídụ:createfunctiondbo.HienthiNV()returnsTableAS Return(Select*fromNHANVIEN)Ứngdụng:Saukhitạothànhcông.Chúngtacóthểsửdụnghàmnhưsau:select*fromdbo.HienthiNV() 14TạoFunction(trảvềbảngdữliệu) Ứng dụng hàm người dùng trả về bảng dữ liệu (trường hợp có tham số truyền vào):Create function dbo.HienthiNV(@MaNV varchar(4))returns TableASReturn (select MaNV, Hoten, Ngaysinh, Phai from NHANVIEN where MaNV like @MaNV) 15TạoFunction(trảvềbảngdữliệu) Trong trường hợp cần phải sử dụng đến nhiều câu lệnh trong phần thân của hàm, ta sử dụng cú pháp như sau để định nghĩa hàm:CREATE FUNCTION tên_hàm([danh_sách_tham_số])RETURNS @biến_bảng TABLE định_nghĩa_bảngASBEGIN các_câu_lệnh_trong_thân_hàm RETURNEND 16 Khi định nghĩa hàm dạng này cần lưu ý một số điểm sau: - Cấu trúc của bảng trả về bởi hàm được xác định dựa vào định nghĩa của bảng trong mệnh đề RETURNS. - Biến @biến_bảng trong mệnh đề RETURNS có phạm vi sử dụng trong hàm và được sử dụng như là một tên bảng. - Câu lệnh RETURN trong thân hàm không chỉ định giá trị trả về. - Giá trị trả về của hàm chính là các dòng dữ liệu trong bảng có tên là @biến_bảng ...

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