Danh mục

User Defined Functions

Số trang: 5      Loại file: pdf      Dung lượng: 202.75 KB      Lượt xem: 9      Lượt tải: 0    
10.10.2023

Hỗ trợ phí lưu trữ khi tải xuống: miễn phí Tải xuống file đầy đủ (5 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

I.1 Hàm do người dùng định nghĩa là gì?Hàm do người dùng định nghĩa (user defined functions - UDFs) là một đối tượng mới được bổ sung của phiên bản SQL Server 2000. Trước hết, bạn cần biết rằng UDFs mang đầy đủ các ý nghĩa và tính chất của một hàm như đa số các ngôn ngữ lập trình khác, có nghĩa là một UDFs là một chương trình con đảm trách một xử lý nào đó với đặc tính là sẽ nhận các tham số đầu vào và trả về một giá trị kết quả xử lý tính...
Nội dung trích xuất từ tài liệu:
User Defined FunctionsUser Defined Functions - UDFsNguồn : forum.t3h.vnI Khái quát về hàm do người dùng định nghĩaI.1 Hàm do người dùng định nghĩa là gì?Hàm do người dùng định nghĩa (user defined functions - UDFs) là một đốitượng mới được bổ sung của phiên bản SQL Server 2000. Trước hết, bạncần biết rằng UDFs mang đầy đủ các ý nghĩa và tính chất của một hàmnhư đa số các ngôn ngữ lập trình khác, có nghĩa là một UDFs là mộtchương trình con đảm trách một xử lý nào đó với đặc tính là sẽ nhận cáctham số đầu vào và trả về một giá trị kết quả xử lý tính toán được dựa trêncác tham số đầu vào đã nhận.Không chỉ UDFs mà tất cả các hàm nói chung (Các phiên bản SQL Servertrước đây cung cấp các hàm được cài đặt sẵn như getdate(),object_name(),… ) có thể phân ra thành hai nhóm : hàm xác định(deterministic) và hàm không xác định (non-deterministic).Các hàm xác định sẽ luôn luôn trả về cùng giá trị nếu giá trị các tham sốđược cung cấp (truyền vào) là như nhau.Các hàm không xác định có thể tạo ra các kết quả khác biệt tại mỗi thờiđiểm chúng được gọi thực hiện, ngay cả khi giá trị các tham số được cungcấp vẫn không thay đổi.Trong một số tài liệu bạn thấy có xuất hiện thuật ngữ “scalar functions –các hàm vô hướng” dùng để chỉ các hàm trả về một giá trị, tương phản vớinó là các hàm trả về một table.Hàm getdate() là một ví dụ điển hình cho cả hai : hàm vô hướng (scalar)và hàm không xác định (non-deterministic). Nếu bạn gọi thực hiện nó hailần với cùng một dòng lệnh gọi, bạn sẽ nhận được hai kết quả khác nhauvà chỉ có duy nhất một giá trị cho mỗi lần gọi.Như chúng tôi đã trình bày, UDFs mang đầy đủ các tính chất của mộthàm, ngoài ra, bạn cũng có thể hình dung UDFs là sự kết hợp của hai đốitượng View và Stored Procedure. Hơn thế nữa, nó còn có những tínhnăng sử dụng mà View và Stored Procedure không có được, hay nói cáchkhác nó khắc phục một số các hạn chế của View và Stored Procedure. Vídụ : Stored Procedure không thể là một phần của câu lệnh SELECTnhưng UDFs , View không hỗ trợ sự đệ quy trong khi với UDFs thì bạn cóthể làm được điều này.II Làm việc với UDFsTrong phần này chúng tôi sẽ hướng dẫn các bạn cách thức: Tạo UDFs . Thay đổi tên của UDFs và nội dung các câu lệnh chứa bên trong nó. Xem (view), xoá (drop) UDFs.II.1 Tạo mới UDFsGiống như các đối tượng khác trong Microsoft SQL Server mà chúng tôiđã trình bày trước đây ở các chương trước, các bạn có hai (2) cách để cóthể tạo mới một UDFs: sử dụng các câu lệnh T-SQL hoặc dùng tiện íchEnterprise Manager.II.1.1 Sử dụng câu lệnh T-SQLBạn có thể câu lệnh CREATE FUNCTION để tạo một UDFs bằng cách sửdụng tiện ích SQL Query Analyzer hoặc sử dụng công cụ dạng dấu nhắclệnh (command-prompt) điển hình như công cụ osql.Cú pháp:CREATE FUNCTION [Tên_FUNCTION] (Khai báo các tham số )RETURNS Kiểu_dữ Liệu_trả_về ASBEGIN-Các câu lệnh bên trong FUNCTION-RETURNEND Mệnh đề CREATE FUNCTIONViệc tạo UDFs bắt đầu với mệnh đề CREATE FUNCTION theo sau làtêncủa UDFs. Ngay sau tên của UDFs là phần khai báo các tham số củaUDFs. Chú ý là các tham số phải tuân thủ quy tắc của một định danh vàphải bắt đầu bằng ký hiệu @. Về nguyên tắc, một UDFs có thể không cótham số.Ví dụ : UDFs không có tham sốCREATE FUNCTION [Test_Func] ()Ví dụ : UDFs có tham sốCREATE FUNCTION [Chuan_Ho_Ten] (@ChuoiHoTen varchar(50)) Mệnh đề RETURNSDùng để thiết lập kiểu dữ liệu trả về của UDFs. Có hai cách thiết lập chính: Trả về giá trị kiểu vô hướng. Khi chỉ định kiểu này, UDFs sẽ trả về giátrị kết quả đơn lẻ như là: một chuỗi , một giá trị logic, hoặc một giá trị kiểusố. Trả về một table. Trên thực tế bạn có thể chỉ định trả về hai loại table:o inline table : Với loại này, bạn chỉ có thể thực hiện bên trong nó câulệnh SELECT rõ ràng không quá phức tạp. UDFs loại này thực chất đượcdùng để thay thế cho các đối tượng VIEW, bởi nó khắc phục được nhượcđiểm không có tham số của VIEW. Bạn có thể hình dung một UDFs loạiinline table giống như là một VIEW có tham số.Ví dụ :create view V_DSHangHoaasSelect * from DM_HANG_HOA where MaLoai_HH=TiVigoVí dụ : Việc tạo view ở ví dụ trên thật khó làm cho ta thoả mãn bởi trongtrường hợp ta muốn danh sách gồm các mặt hàng không phải là loại TiVithì sao? Bạn cũng đã biết là VIEW không hỗ trợ tham số. Để giải quyếtvấn đề này, bạn có thể tạo một UDFs với tham số cho phép truyền vào giátrị loại hàng hoá.CREATE FUNCTION F_DSHangHoa(@LoaiHH varchar(50))RETURNS Table ASReturn(Select * from DM_HANG_HOA where MaLoai_HH=@LoaiHH)GoChú ý : Khi sử dụng UDFs loại inline table bạn cần quan tâm đến các quytắc sau : Mệnh đề RETURNS chứa duy nhất từ khoá table. Bạn không phảiđịnh nghĩa kiểu của biến trả về, bởi vì nó là tập được định dạng bởi tập kếtquả truy vấn của câu lệnh SELECT trong mệnh đề RETURN. Không có phần thân của hàm với việc bắt đầu bởi BEGIN và kết thúcbởi END. Mệnh đề RETURN chứa một ...

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