Giới thiệu function trong sql server

Đôi dịp chúng ta hy vọng tự tạo ra một hàm riêng rẽ mang đến hệ thống nhằm dễ không ngừng mở rộng cùng tái sử dụng, trong SQL cũng cung cấp bọn họ thực hiện quá trình này. Bài viết này bản thân xin chia sẻ một số trong những kỹ năng và kiến thức về Function (Hàm) vào MS SQL Server.

Bạn đang xem: Giới thiệu function trong sql server

Function là gì?

Định nghĩa:

Là một đối tượng người sử dụng trong các đại lý tài liệu (CSDL) sử dụng trong những câu lệnh Squốc lộ, được biên dịch sẵn và lưu vào cơ sở dữ liệu nhằm mục tiêu thực hiện cách xử lý như thế nào đó nlỗi tính tân oán phức tạp và trả về tác dụng là cực hiếm làm sao đó.

Đặc điểm:Luôn trả về giá trịGồm 2 loại: Function hệ thống cùng Function bởi vì người tiêu dùng từ bỏ định nghĩaFunction người dùng từ bỏ quan niệm có 2 loại:Scalar-valued: Trả về cực hiếm vô phía của những loại dữ liệu T-SQLTable-valued: Trả về bảng, là hiệu quả của một hoặc các lệnh

Cách khái niệm Function

1. Tạo Function trả về cực hiếm loại Scalar-valued

CREATE FUNCTION Tên function>(<
tên tđê mê số> giao diện dữ liệu> <= cực hiếm mang định>>, …,<...>>)RETURNS kiểu dữ liệu>BEGIN RETURN Biểu thức cực hiếm đơn>ENDTrong đó:

Tên function: Tên của hàm chúng ta vẫn tạoTên tđam mê số: Là những tmê say số Input mang đến hàm. Knhị báo báo gồm thương hiệu của tđam mê số (trước thương hiệu tyêu thích số áp dụng chi phí tố
), phong cách tài liệu của tđam mê số, bạn cũng có thể chỉ định cực hiếm mặc định cho tmê mẩn số. cũng có thể hướng đẫn các tsay đắm số đầu vàoRETURNS: trường đoản cú khóa này hướng đẫn mẫu mã tài liệu hàm sẽ trả về. Kiểu dữ liệu buộc phải được hướng dẫn và chỉ định kiểu dáng độ lâu năm tài liệu. Ví dụ: varchar(100)WITH ENCRYPTION: Từ khóa hướng đẫn code của hàm sẽ tiến hành mã hóa trong bảng syscomments.AS: Từ khóa cho thấy code của hàm bước đầu.BEGIN: Đi với END nhằm tạo thành thành bao khối hận bao các câu lệnh vào thân hàm.RETURN: Từ khóa này vẫn gửi quý hiếm cho tới giấy tờ thủ tục Hotline hàm.Một số lưu giữ ý:Tên function buộc phải là tốt nhất trong 1 CSDL. Function được tạo/khái niệm vào cơ sở dữ liệu như thế nào thì chỉ áp dụng trong DataBase kia. Khác với Function tất cả sẵn của Squốc lộ được truy cập sống bất kể đâu.Danh sách tsay đắm số buổi tối nhiều 1024 tđam mê số.

2. Tạo Function trả về cực hiếm một số loại Table-valued

Function Table-valued gồm 2 loại:

Hàm giá trị bảng đối chọi giản: Trả về bảng, là kết quả của một câu lệnh SELECT đơnHàm quý giá bảng đa câu lệnh: Trả về bảng, là công dụng của tương đối nhiều câu lệnha) Hàm quý hiếm bảng 1-1 giản

CREATE FUNCTION Tên function>(<
tên tđê mê số> đẳng cấp dữ liệu> <= quý giá mặc định>>, …,<...>>)RETURNS TABLE RETURN Câu lệnh SQL>ENDLưu ý Hàm quý hiếm bảng đối chọi có cách gọi khác là hàm cực hiếm bảng nội con đường. cũng có thể được dùng vào câu lệnh tróc nã vấn sửa chữa cho thương hiệu bảng hoặc thương hiệu View.

b) Hàm quý giá bảng đa câu lệnh

CREATE FUNCTION Tên function>(<
tên đổi mới trả về> TABLE (thương hiệu cột 1> giao diện dữ liệu> , ..., tên cột n> đẳng cấp dữ liệu> )BEGIN Câu lệnh SQL>RETURNEND

Ttuyệt thay đổi, xóa, coi ngôn từ Function

1. Tgiỏi đổi Function

Để biến hóa những hàm sẽ knhị báo ta sử dụng câu lệnh ALTER FUNCTION. Cú pháp tương tự như như chế tạo ra bắt đầu Function, chỉ cố gắng từ khóa CREATE bởi từ bỏ khóa ALTER

ALTER FUNCTION Tên function>(<
tên tham số> phong cách dữ liệu> <= quý hiếm mặc định>>, …,<...>>)RETURNS giao diện dữ liệu> | TABLEBEGIN RETURN Biểu thức giá trị đơn> | Câu lệnh SQLEND

2. Xóa Function

Để xóa hàm ta cần sử dụng câu lệnh DROPhường FUNCTION.

Xem thêm: Chỉnh Google Chrome Sang Tiếng Việt Cho Chrome Cực Kỳ Đơn Giản

DROPhường FUNCTION Tên function>

3. Xem văn bản Function

Để xem văn bản function ta thực hiện Store Procedure (Thủ tục) có sẵn của Squốc lộ là sp_helptext (Transact-SQL)

EXEC sp_helptext "FunctionName"

ví dụ như chũm thể

Cho bài tân oán cai quản Vay bao gồm thế chấp gia tài dễ dàng biểu lộ qua sơ trang bị nút đồ gia dụng lý nlỗi sau:
*

lấy ví dụ 1. Tạo function cho biết con số khách hàng theo ảnh hưởng ngẫu nhiên nhận vào từ bỏ ttê mê số cùng với ĐK là quý khách tất cả tổng thể tiền vay mượn từ trước tới nay từ bỏ 200 triệu trsinh hoạt lên.

Cách 1: Trả về cực hiếm vô hướng

CREATE FUNCTION count_customer_with_address (
count = count(*) FROM ( SELECT Vay.MaKH FROM Vay,KhachHang WHERE Vay.MaKH=KhachHang.MaKH AND KhachHang.DiaChi=
countENDGọi xúc tiến function:

PRINT dbo.count_customer_with_address("Ha Noi")Cách 2: Trả về cực hiếm table bởi câu lệnh đơn

CREATE FUNCTION count_customer_with_address2 (
address varchar(200))RETURNS TABLEAS RETURN SELECT count(*) AS "Total customers" FROM ( SELECT Vay.MaKH FROM Vay,KhachHang WHERE Vay.MaKH=KhachHang.MaKH AND KhachHang.DiaChi=
address GROUp BY Vay.MaKH HAVING SUM(Vay.SoTienVay)>=200) AS TempĐiện thoại tư vấn xúc tiến function:

SELECT * FROM dbo.count_customer_with_address2 ("Da Nang")Cách 3: Trả về cực hiếm table bằng nhiều câu lệnh

CREATE FUNCTION count_customer_with_address3 (
address varchar(200))RETURNS
new_table TABLE (DiaChi varchar(200), SoLuong int)ASBEGINDECLARE
count int = 0SELECT
count = count(*) FROM ( SELECT Vay.MaKH FROM Vay,KhachHang WHERE Vay.MaKH=KhachHang.MaKH AND KhachHang.DiaChi=
address GROUp BY Vay.MaKH HAVING SUM(Vay.SoTienVay)>=200 ) AS Temp INSERT INTO
new_table VALUES (
address,
count) RETURNENDví dụ như 2. Sửa đổi function sẽ chế tạo ra ở trên bổ sung cập nhật ĐK người tiêu dùng bao gồm tuổi từ 30 trsinh sống lên

ALTER FUNCTION count_customer_with_address (
count = count(*) FROM ( SELECT Vay.MaKH FROM Vay JOIN KhachHang ON Vay.MaKH=KhachHang.MaKH WHERE KhachHang.DiaChi=
address AND YEAR(GETDATE()) - YEAR(NgaySinh) >= 30 GROUp BY Vay.MaKH HAVING SUM(Vay.SoTienVay)>=200 ) AS Temp RETURN
countENDlấy một ví dụ 3. Xóa quăng quật function đã tạo

DROP FUNCTION count_customer_with_address

Kết luận

Trên đó là phần đông gì bản thân tổng hòa hợp với tự đưa ra ví dụ minch họa mang lại từng phần. Hi vọng để giúp ích đến các bạn trong quá trình sử dụng function vào câu lệnh sql.