SQL Tạo Hàm Function

Trong bài này chúng tôi sẽ hướng dẫn cách tạo hàm Function và cách sử dụng hàm Function trong cơ sở dữ liệu SQL Server.

  1. Function trong SQL Server là gì?
  2. Cách tạo hàm Create Function trong SQL Server.
  3. Cách gọi hàm Function trong SQL Server
  4. Cách sửa hàm Modify Function trong SQL Server.
  5. Cách xóa hàm Delete Function trong SQL Server.

 

1.Function trong SQL Server là gì?

Hàm (Function) trong SQL Server là một khối lệnh hay một chương trình con, bao gồm các lệnh nhằm thực hiện một chức năng nào đó để trả về một giá trị.Hàm chỉ được thực thi khi nó được gọi.

Hàm được tạo ra với mục đích để tái sử dụng mã code nhiều lần nhằm tiết kiệm thời gian cho người lập trình.Bạn có thể định nghĩa Hàm 1 lần và gọi nó ở nhiều nơi và nhiều lần.

 Trong SQL Server có các hàm của hệ thống (System Functions) và các hàm Functions do người dùng định nghĩa như: Table-valued Functions, Scalar-valued Functions, Aggregate Functions.

 

2.Cách tạo hàm Function trong SQL Server.

2.1 Tạo hàm Scalar-valued Functions trong SQL Server.

- Scalar-valued Functions là Hàm trả về giá trị vô hướng như INT, VARCHAR, NVARCHAR…

Cú pháp để tạo hàm Scalar-valued Function trong SQL Server như sau:

Cú pháp

CREATE FUNCTION <Scalar_Function_Name, sysname, FunctionName>

(

         -- Add the parameters for the function here

         <@Param1, sysname, @p1> <Data_Type_For_Param1, , int>

)

RETURNS <Function_Data_Type, ,int>

AS

BEGIN

         -- Declare the return variable here

         DECLARE <@ResultVar, sysname, @Result> <Function_Data_Type, ,int>

         -- Add the T-SQL statements to compute the return value here

         SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1>

         -- Return the result of the function

         RETURN <@ResultVar, sysname, @Result>

END

Ví dụ tạo hàm Scalar-valued Fucntion trong SQL Server.

Ví dụ chúng ta cần tạo một hàm lấy tên nhân viên theo mã nhân viên.Nghĩa là khi chúng ta nhập mã nhân viên vào thì sẽ hiển thị tên nhân viên.

Để tạo hàm F_GetNameEMP vào Functions sau đó chọn Scalar-vaulued Fucntions và click chuột phải chọn New Scalar-vaulued Fucntions...

Ví dụ

CREATE FUNCTION F_GetNameEMP

(

         --Tham số truyền vào

         @pv_EMP_ID varchar(50)

)

RETURNS NVARCHAR(255)

AS

BEGIN

         -- Khai báo biến giá trị trả về

         DECLARE @pv_Name nvarchar(255);

         -- Lệnh SQL trả về giá trị là tên của nhân viên.

         SELECT @pv_Name=EmployeeName FROM Employee_t WHERE EmployeeID=@pv_EMP_ID;

         -- Trả về kết quả của hàm Return the result of the function

         RETURN @pv_Name;

END

 

 2.2 Tạo hàm Table-valued Functions.

-Table-valued Functions là hàm trả về giá trị là 1 bảng Table.

Cú pháp để tạo hàm Table-valued Function trong SQL Server như sau:

Cú pháp

CREATE FUNCTION <Inline_Function_Name, sysname, FunctionName>

(       

         -- Add the parameters for the function here

         <@param1, sysname, @p1> <Data_Type_For_Param1, , int>,

         <@param2, sysname, @p2> <Data_Type_For_Param2, , char>

)

RETURNS TABLE

AS

RETURN

(

         -- Add the SELECT statement with parameter references here

         SELECT 0

)

 

Ví dụ tạo hàm F_Table_NhanVienAge23 lấy danh nhân viên theo tuổi.

Để tạo hàm F_Table_NhanVienAge23 vào Functions sau đó chọn Table-vaulued Fucntions và click chuột phải chọn New Inline Table-vaulued Fucntions...

Ví dụ

CREATE FUNCTION [dbo].[F_Table_NhanVienAge23]

(

  --Tham số truyền vào

  @pv_Age int

)

RETURNS TABLE

AS

RETURN

(

    -- Lệnh Select trả về giá trị là 1 bảng.

    SELECT * FROM Employee_t WHERE EmployeeAge = @pv_Age

)

 

3.Cách gọi hàm Function trong SQL Server.

-Gọi hàm và sử dụng hàm Scaler-valued Functions trong SQL Server

Ví dụ

SELECT dbo.F_GetNameEMP('NV_001') ;

-Gọi hàm và sử dụng hàm Table-valued Functions trong SQL Server

Ví dụ

SELECT * FROM  dbo.F_Table_NhanvienAge23(23);

 

 4.Cách sửa, thay đổi hàm Function trong SQL Server.

Để chỉnh sửa và thay đổi một hàm Function trong SQL Server, bạn làm theo các bước sau:

-Nhấp vào tên hàm F_GetNameEMP mà bạn muốn chỉnh sửa sau đó chọn Modify để chỉnh sửa hàm, sau khi sửa xong Nhấn biểu tượng Execute hoặc F5 để biên dịch và lưu lại hàm.

 

5.Cách xóa hàm Function trong SQL Server.

Sử dụng lệnh DROP FUNCTION để xóa hàm Function trong SQL Server. 

Cú pháp

DROP FUNCTION  function_name ;

Ví dụ để xóa hàm F_GetNameEMP như sau:

Ví dụ

DROP FUNCTION  F_GetNameEMP;

Ngoài ra bạn cũng có thể xóa một hàm Function bằng chức năng Delete trong SQL Server như sau: