• Không có kết quả nào được tìm thấy

Tạo mới hàm

N/A
N/A
Protected

Academic year: 2022

Chia sẻ "Tạo mới hàm"

Copied!
3
0
0

Loading.... (view fulltext now)

Văn bản

(1)

1

2/8/2018 Microsoft SQL Server 2005 1

Bài 10: Hàm do người dùng định nghĩa (UDF – User Defined Function)

2/8/2018 Microsoft SQL Server 2005 2

Khái niệm

n Là một chương trình con:

- Nhận các giá trị đầu vào

- Trả về một giá trị

n 2 nhóm hàm:

- Hàm xác định (deterministic)

- Hàm không xác định (non - deterministic)

2/8/2018 Microsoft SQL Server 2005 3

Tạo mới hàm

n Cú pháp:

Create Function Tên_Function (các_tham_số) Returns Kiểu_dữ_liệu_trả_về

As Begin

Các_lệnh Return End Lưu ý:

- Các tham số phải bắt đầu bằng ký hiệu @

- Một hàm có thể không có tham số

- Kiểu dữ liệu trả về có thể là một giá trị vô hướng hoặc một bảng dữ liệu

2/8/2018 Microsoft SQL Server 2005 4

Tạo mới hàm

n Ví dụ về tạo hàm đơn trị: Tạo hàm chuyển chuỗi ngày tháng năm sang xâu ký tự theo mã 112

Create Function Namthang(@d datetime) Returns char(6)

As Begin

Declare @st char(6)

Set @st=convert(char(6),@d,112) Return @st

End

(2)

2

2/8/2018 Microsoft SQL Server 2005 5

Tạo mới hàm

n Tạo hàm trả về một bảng:

- Dạng Inline Table (hàm đọc bảng)

Ví dụ: Xây dựng hàm đọc bảng hiển thị danh sách vật tư thuộc loại tivi

Create Function DSachTivi() Returns Table

As

Return (Select * From VATTU where left(MaVTu,2) = 'TV')

2/8/2018 Microsoft SQL Server 2005 6

Tạo mới hàm

- Dạng MultiStatement Table (hàm tạo bảng):

Ví dụ:Tạo hàm tạo bảng lưu danh sách hàng xuất với giá khuyến mại, tham số truyền vào là mã vật tư và

% khuyến mại

Create Function DSHangxuat(@MaVTu char(4),

@Phantram numeric) Returns @DSHangxuat Table

(SoPX char(4), MaVT char(4), SlXuat int,

Giakhuyenmai money)

2/8/2018 Microsoft SQL Server 2005 7

Tạo mới hàm

- Dạng MultiStatement Table (hàm tạo bảng) (tiếp):

As Begin

Insert Into

@DSHangxuat(SoPX,MaVT,SlXuat,Giakhuyenmai) Select * From CTPXUAT where MaVTu = @MaVTu Update @DSHangxuat

Set Giakhuyenmai=

Giakhuyenmai*(100-@Phantram)/100 Return

End

2/8/2018 Microsoft SQL Server 2005 8

Tạo mới hàm

n Các lưu ý khi tạo hàm:

Với hàm đọc bảng:

- Phần thân hàm không đặt trong Begin End

- Câu lệnh Select có các hạn chế như khi tạo bảng ảo Với hàm tạo bảng:

- Không thể gọi một thủ tục nội tại từ bên trong hàm - Không thể sử dụng các hàm thuộc loại không xác

định như getdate(), rand(),…

- Không thể sử dụng hàm để sửa đổi thông tin trong các bảng cơ sở

(3)

3

2/8/2018 Microsoft SQL Server 2005 9

Quản lý hàm

n Sửa cấu trúc hàm: Cú pháp tương tự cú pháp tạo hàm, chỉ thay Create bằng Alter

n Đổi tên hàm:sử dụng cú pháp sp_rename Tên_cũ, Tên_mới Ví dụ:

sp_rename DSHangxuat, DSVattuxuat

2/8/2018 Microsoft SQL Server 2005 10

Quản lý hàm

n Xem nội dung hàm:

Cú pháp: sp_helptext Tên_hàm Ví dụ: sp_helptext DSVattuxuat

n Xóa hàm:

Cú pháp: Drop Function Tên_hàm Ví dụ: Drop Function DSVattuxuat

Lưu ý: các thao tác trên có thể thực hiện trực tiếp từ cửa sổ Object Explorer

2/8/2018 Microsoft SQL Server 2005 11

Gọi thực hiện hàm

n Cú pháp gọi hàm:

dbo.Tên_hàm(danh_sách_các_tham_số_thực_sự)

- Gọi hàm đơn trị:Có thể thực hiện lời gọi tại bất kỳ vị trí nào mà biểu thức đơn trị có kiểu dữ liệu tương đương được chấp nhận

Ví dụ:Print dbo.Namthang('02/12/2010')

- Gọi hàm đa trị:

Ví dụ:

Select * from dbo.DSachTivi()

Select * from dbo.DSHangxuat('DD01',10)

2/8/2018 Microsoft SQL Server 2005 12

Hàm đệ quy

n Xây dựng hàm tính giai thừa:

Create Function Giaithua(@n bigint) Returns Bigint

As Begin

Declare @i bigint

IF @n>20 or @n is null set @n=null else if @n<2 set @i=@n

else set @i=@n*dbo.Giaithua(@n-1) Return @i

End

Tài liệu tham khảo

Tài liệu liên quan

• Trong ngữ cảnh mảng nó sẽ cho ta tất cả các dòng còn lại như một danh sách - mỗi phần tử của danh sách này là một dòng, bao gồm cả ký tự xuống dòng mới của nó...

- Trường hợp học sinh thuộc diện tuyển thẳng có thể nhấn chọn vào ô vuông.Đăng ký hồ sơ tuyển thẳng, hệ thống sẽ hiển thị danh sách các trường hợp thuộc diện tuyển thẳng để người dùng

- Các bậc âm trong gam trưởng được sử dụng để xây dựng giai điệu một bài hát ( hoặc một bản nhạc ), người ta gọi đó là giọng trưởng..

Phương pháp giải: Dùng các công thức đạo hàm để tính đạo hàm của hàm số, sau đó sử dụng các công thức lượng giác biến đổi chứng minh đẳng thức hoặc giải

Hoạt động 2 trang 116 Tin học 10: Tìm hiểu một số lệnh làm việc với danh sách Quan sát ví dụ sau để tìm hiểu một số lệnh làm việc với dữ liệu

TÌM ĐỌC SÁCH TRẮC NGHIỆM LUYỆN THI THPT QUỐC GIA 2017 THẦY DIÊU TRÊN MEGABOOK.VN.. BÀI TẬP

Qua 5 ví dụ trên ta đã phần nào hiểu được phương pháp làm các bài tập của dạng toán này, mấu chốt là đưa về nguyên hàm tích phân hàm đa thức qua các phép biến

 DẠNG 7 : Biện luận tham số m của bất phương trình hoặc phương trình bằng cách đưa về hàm số đặc trưng. Ví