Hướng dẫn tạo function trong SQL Server bằng lập trình C#
Hướng dẫn tạo function trong SQL Server bằng lập trình C# sẽ trình bày cho các bạn cách tạo function trong SQL Server bằng cách ánh xạ function được viết hoàn toàn bằng ngôn ngữ lập trình C# thay vì được viết bằng SQL như chúng ta được biết ở bài Hướng dẫn tạo function trong SQL Server.
Hướng dẫn tạo function trong SQL Server bằng lập trình C# – Giới thiệu
Tạo function trong SQL Server bằng ngôn ngữ lập trình là một cách khác giúp cho chúng ta tạo ra những function, stored procedure, trigger hoặc một kiểu dữ liệu mới một cách thuận lợi hơn nếu tạo bằng SQL. Hoặc cũng có thể những function, stored,.. đó chúng ta không thể tạo bằng SQL.
Như chúng ta đã biết, trong SQL Server có 5 hàm nhóm là MIN, MAX, SUM, COUNT và AVG. Và chúng ta đều biết, hàm COUNT chỉ đếm những dòng khác NULL. Vậy có hàm nào để đếm những dòng có giá trị là NULL hay không? Trong trường hợp này, chúng ta có thể tạo ra một hàm tên COUNTNULL bằng ngôn ngữ lập trình.
Hướng dẫn tạo function trong SQL Server bằng lập trình C# – Tổng quan
Để tạo function trong SQL Server bằng lập trình C#, chúng ta thực hiện 2 bước chính sau:
Bước 1. Sử dụng Visual Studio, tạo một SQL Server Database Project
- Tạo SQL CLR C# User Defined Function
- Nhập code
- Build SQL Server Database Project thành DLL
Bước 2. Mở SQL Server Management Studio, tạo function trong SQL Server từ DLL đã tạo ở bước 1.
Hướng dẫn tạo function trong SQL Server bằng lập trình C# – Tạo SQL Server Database Project
Trong bài hướng dẫn này, chúng tôi sẽ tạo một function để đếm số dòng có giá trị là NULL
Bước 1. Mở Microsoft Visual Studio -> chọn File -> chọn New -> chọn Project -> chọn SQL Server -> chọn SQL Server Database Project
Tại hộp thoại New Project chúng ta nhập tên, chỉ định nơi lưu project sau đó chọn OK để hoàn tất việc tạo SQL Server Database Project
Bước 2. Tạo CLR User-Defined Functions
Chuột phải project -> Add -> New Item…
Chọn SQL CLR C# -> chọn SQL CLR C# User Defined Function -> nhập tên (Name) là SqlAggregate -> chọn Add
Nội dung của SqlAggregate.cs được tạo tự động như sau
Bước 3. Nhập code
(1) Khai báo một biến kiểu số nguyên để đếm số dòng có giá trị NULL
(2) Khởi tạo giá trị ban đầu cho biến counter bằng 0
(3) Nếu giá trị của cột là NULL thì tăng biến counter lên 1
(4) Tổng hợp kết quả
(5) Trả kết quả về nơi gọi hàm
Bước 4. Build project thành DLL
Chọn Build -> chọn Build Solution
Chúng ta thu được Database.dll
Chép Database.dll vào thư mục d:\giasutinhoc.vn\sqlserver
Hướng dẫn tạo function trong SQL Server bằng lập trình C# – Tao function trong SQL Server
Bước 1. Mở SQL Server Management Studio -> chọn New Query -> nhập câu lệnh tạo một assembly
(1) Chúng tôi sẽ tạo một assembly cho cơ sở dữ liệu QLBH
(2) Tên của assembly là MyCLR
(3) Chỉ định thư mục chưa Database.dll
Nơi chứa MyCLR sau khi tạo
Bước 2. Kích hoạt tính năng CLR. Bỏ qua bước này nếu chúng ta đã thực hiện kích hoạt CLR.
Bước 3. Tạo function dạng Aggregate (Hàm nhóm)
Function fn_CountNull sau khi tạo
Hướng dẫn tạo function trong SQL Server bằng lập trình C# – Chạy function
Sử dụng fn_CountNull để đếm số lượng đơn đặt hàng chưa có nhà cung cấp. Quan sát dữ liệu của bảng DONDH
Theo như dữ liệu hiện có thì có 2 đơn hàng là D005 và D006 chưa có nhà cung cấp (Tức cột MaNhaCC đang NULL)
Kết quả khi gọi hàm fn_CountNull
Hướng dẫn tạo function trong SQL Server bằng lập trình C# – Tổng kết
Trong bài này, chúng tôi hướng dẫn các bạn cách tạo hàm nhóm trong SQL Server bằng C# (Chính xác hơn là hàm nhóm).
Với việc các bạn hiểu được bài hướng dẫn này và có kiến thức về lập trình C#, các bạn có thể tạo Stored Procedure, Scalar function, Table function,… bằng ngôn ngữ lập trình C#.