- [C#] Hướng dẫn giải nén file *.rar với tiến trình progress bar winform
- [C#] Chia sẻ source code make Crazy Error Message Effect Bomb Windows
- [C#] Lập trình ứng dụng theo mô hình MVP Model-View-Presenter Pattern Winform
- [C#] Giới thiệu và những thứ hay ho từ thư viện System.Reactive của Microsoft
- [C#] Hướng dẫn tạo ứng dụng Chat với GPT sử dụng Open AI API
- [DEVEXPRESS] Tạo month picker trên DateEdit Winform C#
- [DATABASE] Cách sử dụng và lưu ý khi sử dụng khóa ngoại (Foreign Key) trong Sqlserver
- [C#] Garbage Collector (GC) là gì? Cách giải phóng bộ nhớ trên ứng dụng Winform khi các đối tượng không còn sử dụng
- [C#] Cách tính độ tương phản màu sắc Contrast Color mà con người có thể nhìn thấy được
- [C#] Hướng dẫn mã hóa mật khẩu tài khoản ứng dụng đúng chuẩn Men
- [C#] Sử dụng Open AI Chat GPT viết ứng dụng Count down timer có hiệu ứng trên winform
- [DATABASE] Chia sẻ dữ liệu Pantone Color sql và json api
- [SQLSERVER] Tạo mã sản phẩm tự động như: SP0001, SP0002, SP0003... sử dụng Trigger
- [C#] Hướng dẫn kiểm tra phiên bản NET Framework cài đặt ở máy tính
- [C#] Hướng dẫn đọc file excel đơn giản sử dụng thư viện Epplus
- [C#] ConcurrentBag là gì và cách sử dụng nó trong lập trình bất đồng bộ
- [C#] AutoResetEvent là gì và cách sử dụng
- [DEVEXPRESS] Chia sẻ source code cách tạo biểu đồ sơ đồ tổ chức công ty Org Chart trên Winform C#
- [C#] Hướng dẫn tạo Auto Number trên Datagridview winform
- [DATABASE] Hướng dẫn tạo Procedure String Split in Mysql
[SQLSERVER] Tạo mã sản phẩm tự động như: SP0001, SP0002, SP0003... sử dụng Trigger
Xin chào các bạn, bài viết hôm nay mình hướng dẫn các bạn cách tạo mã sản phẩm tự động như product code: SP0001, SP0002... trong sqlserver.
[SQLSERVER] Tạo mã sản phẩm tự động Product Code: SP0001, SP0002,....
Đầu tiên, các bạn tạo cho mình 1 table Product
CREATE TABLE Product
(
ID INT IDENTITY(1,1) PRIMARY KEY,
Code VARCHAR(6),
Name NVARCHAR(50) NOT NULL
)
Video hướng dẫn step by step:
Tiếp đến, chúng ta sẽ tạo 1 Trigger, để khi dữ liệu insert mới vào chúng ta sẽ update cột Code lại.
CREATE TRIGGER trgAutoGenerateCode
ON Product
AFTER INSERT
AS
BEGIN
DECLARE @maxId INT, @newCode VARCHAR(10)
SELECT @maxId = ISNULL(MAX(RIGHT(Code, 4)), 0) + 1
FROM Product
SELECT @newCode = 'SP' + RIGHT('0000' + CAST(@maxId AS VARCHAR(4)), 4)
FROM Product
UPDATE Product SET Code = @newCode
WHERE Id IN (SELECT Id FROM inserted)
END
Giải thích các bước trong trigger:
- Bước 1: Tạo trigger với tên
trgAutoGenerateCode
cho bảngTableName
. - Bước 2: Trigger được kích hoạt sau khi một bản ghi mới được chèn vào bảng
TableName
. - Bước 3: Khai báo biến
@maxId
và@newCode
. - Bước 4: Lấy giá trị lớn nhất của mã code hiện có trong bảng, bỏ phần 'SP' và lấy 4 chữ số cuối cùng.
- Bước 5: Tạo mã code mới bằng cách cộng 1 vào giá trị
@maxId
, sau đó đưa nó về dạng chuỗi có 4 chữ số bằng cách sử dụng hàmRIGHT
và thêm phần 'SP' ở đầu. - Bước 6: Cập nhật mã code mới vào bảng cho tất cả các bản ghi mới được chèn, sử dụng điều kiện
WHERE Id IN (SELECT Id FROM inserted)
.
Tiếp đến, bạn insert vài sản phẩm để test thử.
INSERT INTO [dbo].[Product]
(
[Name]
)
VALUES
(
N'Beer' -- Name - nvarchar(50)
)
Và dưới đây là kết quả:
Thanks for watching!