Tạo các kiểu dữ liệu do người dùng định nghĩa trong mssql

Trong SQL server đã định nghĩa sẵn cho bạn các kiểu dữ liệu. Nhưng SQL cũng có chế độ mở để cho phép người dùng tự định nghĩa kiểu dữ liệu riêng của bạn.
SQL server, kiểu dữ liệu, người dùng, định nghĩa,

Khi bạn đã tạo một kiểu dữ liệu do bạn tự định nghĩa bạn có thể sử dụng nó trong cơ sở dữ liệu của bạn như các liểu dữ liệu mà SQL System đã định nghĩa.

Để tạo kiểu dữ liệu tự định nghĩa bạn phải sử dụng các kiều dữ liệu do hệ thống cung cấp. Ví dụ bạn có thể tạo một loại dữ liệu là KhoaChinh và định nghĩa nó như varchar hoặc Int nhưng không thể định nghĩa nó như một loại dữ liệu không tồn tại. Một điều nữa là bạn cần phải định nghĩa kiểu dữ liệu của bạn trước khi bạn sử dụng nó.

Để định nghĩa bằng lệnh SQL bạn sử dụng sp_addType

Lấy minh họa là bạn muốn tạo kiểu dữ liệu là KhoaChinh để khi sử dụng trường nào đó là Prymary Key sẽ luôn là varchar và Length là 50 như ví dụ sau:

Exec sp_addtype 'KhoaChinh', 'varchar(50)', 'Not null'


Khi chạy xong lệnh này giờ bạn đã chính thức có kiểu dữ liệu là KhoaChinh và bạn sử dụng nó như các kiểu dữ liệu khác như ví dụ sau:

Create Table TB_DBType
(
    TestCode KhoaChinh Primary Key,
    TestName nvarchar(100),
    OrderID int
)

Bạn thấy trong lệnh tạo Bảng TBDBType ở trên tôi có tạo trường TestCode là khóa chính và kiểu dữ liệu là KhoaChinh do tôi đã định nghĩa là varchar(50) mà không phải một kiểu dữ liệu hệ thống của SQL server . Đó là ví dụ đơn giản để bạn biết về kiểu dữ liệu do người dùng định nghĩa. Qua đó bạn có thể tự định nghĩa cho mình các kiểu dữ liệu mà bạn mong muốn

Để xóa các kiểu dữ liệu do người dùng định nghĩa bạn sùng lệnh sp
dropType nhưng bạn cần chú ý là kiểu dữ liệu đang muốn xóa này chưa được sử dụng trong cơ sở dữ liệu của bạn
Ví dụ để xóa Kiểu dữ liệu KhoaChinh ở trên bạn dùng lệnh:

exec sp_droptype 'KhoaChinh'

Về lý thuyết thì bạn có thể định nghĩa kiểu dữ liệu riêng của bạn để sử dụng cho tất cả các Database có trong hệ quản trị CSDL của bạn bằng việc tạo nó trong cơ sở dữ liệu model của hệ thống, nhưng tôi khuyến cáo bạn nếu có định nghĩa thì nên định nghĩa trong nội cơ sở dữ liệu bạn đang thao tác thôi nếu không khi triển khai bạn sẽ gặp phải những lỗi không mong muốn. đó là bạn lại phải định nghĩa kiểu dữ liệu đó trên Database server nơi bạn triển khai, Nếu bạn lại không có quyền quản trị cao nhất thì lúc đó không triển khai ứng dụng của bạn được

Bài viết này có tính chất tham khảo, Bạn có hứng thú có thể tự định nghĩa cho bạn kiểu dữ liệu riêng nhé