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#

huong-dan-tao-function-trong-sql-server-bang-lap-trinh-c-1
Lab SQL Server

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

Hướng dẫn tạo function trong sql server bằng c#

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#.

Alert: You are not allowed to copy content or view source !!