Tổng Hợp Một Số Function Tạo Mã Tự động Tăng Trong SQL Server
Có thể bạn quan tâm
Trong quá trình thiết kế Cơ sở dữ liệu, để lưu trữ, chúng ta sẽ cần dùng đến những mã tự động tăng để việc quản lý được dễ dàng hơn. Không chỉ vậy, các mã tự động tăng trong SQL luôn có một ý nghĩa riêng mà khi đọc mã chúng ta có thể hiểu hết một dòng dữ liệu theo mã đó.
1. Kiểu chữ cái trước và số sau: “KH001 > KH002 > … > KH999”
Function:
CREATE FUNCTION AUTO_IDKH() RETURNS VARCHAR(5) AS BEGIN DECLARE @ID VARCHAR(5) IF (SELECT COUNT(MAKH) FROM KHACHHANG) = 0 SET @ID = '0' ELSE SELECT @ID = MAX(RIGHT(MAKH, 3)) FROM KHACHHANG SELECT @ID = CASE WHEN @ID >= 0 and @ID < 9 THEN 'KH00' + CONVERT(CHAR, CONVERT(INT, @ID) + 1) WHEN @ID >= 9 THEN 'KH0' + CONVERT(CHAR, CONVERT(INT, @ID) + 1) END RETURN @ID ENDSử dụng: Thiết lập mặc định hàm DBO.AUTO_IDKH() cho trường MAKH
CREATE TABLE KHACHHANG( MAKH CHAR(5) PRIMARY KEY CONSTRAINT IDKH DEFAULT DBO.AUTO_IDKH(), HOTEN NVARCHAR(50) NOT NULL, SDT VARCHAR(11) NULL, DIACHI NVARCHAR(100) NULL, EMAIL VARCHAR(50) NULL )Các bạn có thể tăng chiều dài mã bằng cách khai báo tăng chiều dài của MAKH và thêm nhiều nhánh CASE hơn.
2. Kiểu chỉ bao gồm chữ cái: AAAA > AAAB > … > ZZZZZ
Function:
CREATE FUNCTION TAOMAVE(@BEFORECODE CHAR(6))---65->90 RETURNS CHAR(6) AS BEGIN DECLARE @ONE AS SMALLINT, @TWO SMALLINT, @THREE SMALLINT, @FOUR SMALLINT, @FIVE SMALLINT, @SIX SMALLINT DECLARE @MAVE CHAR(6) SELECT @ONE=ASCII(LEFT(@BEFORECODE,1)) SELECT @TWO=ASCII(SUBSTRING(@BEFORECODE,2,1)) SELECT @THREE=ASCII(SUBSTRING(@BEFORECODE,3,1)) SELECT @FOUR=ASCII(SUBSTRING(@BEFORECODE,4,1)) SELECT @FIVE=ASCII(SUBSTRING(@BEFORECODE,5,1)) SELECT @SIX=ASCII(RIGHT(@BEFORECODE,1)) IF @SIX<90 SELECT @SIX=@SIX+1 ELSE BEGIN SELECT @SIX=65 IF @FIVE<90 SELECT @FIVE=@FIVE+1 ELSE BEGIN SELECT @FIVE=65 IF @FOUR<90 SELECT @FOUR=@FOUR+1 ELSE BEGIN SELECT @FOUR=65 IF @THREE<90 SELECT @THREE=@THREE+1 ELSE BEGIN SELECT @THREE=65 IF @TWO<90 SELECT @TWO=@TWO+1 ELSE BEGIN SELECT @TWO=65 IF @ONE<90 SELECT @ONE=@ONE+1 ELSE RETURN NULL END END END END END SELECT @MAVE=CHAR(@ONE)+CHAR(@TWO)+CHAR(@THREE)+CHAR(@FOUR)+CHAR(@FIVE)+CHAR(@SIX) RETURN @MAVE ENDSử dụng: Có thể gọi trong Procedure hoặc từ ứng dụng kết nối với Cơ sở dữ liệu
3. Kiểu Ngày Tháng Năm + Chữ cái + Số tự động tăng: 01012001DV00001 > 02012001DV00002
Function:
CREATE FUNCTION auto_iddv() RETURNS VARCHAR(15) AS BEGIN DECLARE @id VARCHAR(15) IF (SELECT COUNT(MaDV) FROM DATVE) = 0 SET @id = '0' ELSE SELECT @id = MAX(RIGHT(MaDV, 5)) FROM DATVE SELECT @id = CASE WHEN @id = 99999 THEN CONVERT(VARCHAR,GETDATE(),112) + 'DV00001' WHEN @id >= 0 and @id < 9 THEN CONVERT(VARCHAR,GETDATE(),112) + 'DV0000' + CONVERT(CHAR, CONVERT(INT, @id) + 1) WHEN @id >= 9 THEN CONVERT(VARCHAR,GETDATE(),112) + 'DV000' + CONVERT(CHAR, CONVERT(INT, @id) + 1) WHEN @id >= 99 THEN CONVERT(VARCHAR,GETDATE(),112) + 'DV00' + CONVERT(CHAR, CONVERT(INT, @id) + 1) WHEN @id >= 999 THEN CONVERT(VARCHAR,GETDATE(),112) + 'DV0' + CONVERT(CHAR, CONVERT(INT, @id) + 1) WHEN @id >= 9999 THEN CONVERT(VARCHAR,GETDATE(),112) + 'DV' + CONVERT(CHAR, CONVERT(INT, @id) + 1) END RETURN @id ENDSử dụng: Các bạn sử dụng tương tự như Kiểu 1
Mình đang tiếp tục cập nhật tiếp một số Funtion hữu ích khác… Theo dõi nhé các bạn!
Từ khóa » Khóa Chính Tự Tăng Sql
-
Thiết Lập ID Tăng Tự động Với Identity Trong SQL Server - Freetuts
-
[Tự Học SQL] Tìm Hiểu Về Cách Tự động Tăng Giá Trị Trong Bảng
-
Auto Increment Trong SQL | Lập Trình Từ Đầu
-
Khóa Chính Tăng Tự động Trong SQL Server Management Studio 2012?
-
Thêm Khóa Chính Tăng Dần Tự động Vào Bảng Hiện Có Trong SQL ...
-
Sql — Làm Cách Nào Để Thêm Khóa Chính Auto_Increment Trong ...
-
Chỉnh ID Tự Tăng Trong SQL Server - Programming - Dạy Nhau Học
-
Khóa Chính Tăng Tự động Trong SQL Server Management Studio 2012
-
CÁCH SỬ DỤNG TỰ ĐỘNG TĂNG (AUTO_INCREMENT) TRONG ...
-
Tự động Gán & Tăng Giá Trị Cho Cột (AUTO_INCREMENT) Trong MySQL
-
Bài 6: Khóa Chính Trong SQL Server - VnCoder
-
Tổng Hợp Những Câu Lệnh SQL Cơ Bản | TopDev
-
Sql — Tự động Tăng Sau Khi Xóa Trong MySQL