Bài viết này chứa tham chiếu nhanh về các kiểu dữ liệu do hệ thống cung cấp có sẵn trong SQL Server 2017, cùng với một số thông tin cơ bản như độ dài tối đa tính bằng byte, độ chính xác, tỷ lệ và liệu kiểu dữ liệu có là nullable hay không (1
có nghĩa là nó không có giá trị, 0
có nghĩa là nó không thể vô hiệu).
Số chính xác
Tên | Độ dài Tối đa | Độ chính xác | Thang đo | Vô hiệu? |
---|---|---|---|---|
bigint | 8 | 19 | 0 | 1 |
bit | 1 | 1 | 0 | 1 |
thập phân | 17 | 38 | 38 | 1 |
int | 4 | 10 | 0 | 1 |
tiền | 8 | 19 | 4 | 1 |
số | 17 | 38 | 38 | 1 |
smallint | 2 | 5 | 0 | 1 |
smallmoney | 4 | 10 | 4 | 1 |
tinyint | 1 | 3 | 0 | 1 |
Các số gần đúng
Tên | Độ dài Tối đa | Độ chính xác | Thang đo | Vô hiệu? |
---|---|---|---|---|
float | 8 | 53 | 0 | 1 |
thực | 4 | 24 | 0 | 1 |
Ngày và giờ
Tên | Độ dài Tối đa | Độ chính xác | Thang đo | Vô hiệu? |
---|---|---|---|---|
ngày | 3 | 10 | 0 | 1 |
datetime2 | 8 | 27 | 7 | 1 |
ngày giờ | 8 | 23 | 3 | 1 |
datetimeoffset | 10 | 34 | 7 | 1 |
smalldatetime | 4 | 16 | 0 | 1 |
thời gian | 5 | 16 | 7 | 1 |
Chuỗi ký tự
Tên | Độ dài Tối đa | Độ chính xác | Thang đo | Vô hiệu? |
---|---|---|---|---|
ký tự | 8000 | 0 | 0 | 1 |
văn bản | 16 | 0 | 0 | 1 |
varchar | 8000 | 0 | 0 | 1 |
Chuỗi ký tự Unicode
Tên | Độ dài Tối đa | Độ chính xác | Thang đo | Vô hiệu? |
---|---|---|---|---|
nchar | 8000 | 0 | 0 | 1 |
ntext | 16 | 0 | 0 | 1 |
nvarchar | 8000 | 0 | 0 | 1 |
Chuỗi nhị phân
Tên | Độ dài Tối đa | Độ chính xác | Thang đo | Vô hiệu? |
---|---|---|---|---|
nhị phân | 8000 | 0 | 0 | 1 |
hình ảnh | 16 | 0 | 0 | 1 |
varbinary | 8000 | 0 | 0 | 1 |
Các kiểu dữ liệu khác
Tên | Độ dài Tối đa | Độ chính xác | Thang đo | Vô hiệu? |
---|---|---|---|---|
phân cấp | 892 | 0 | 0 | 1 |
sql_variant | 8016 | 0 | 0 | 1 |
hình học | -1 | 0 | 0 | 1 |
địa lý | -1 | 0 | 0 | 1 |
dấu thời gian * | 8 | 0 | 0 | 0 |
uniqueidentifier | 16 | 0 | 0 | 1 |
xml | -1 | 0 | 0 | 1 |
tên mã | 256 | 0 | 0 | 0 |
* Dấu thời gian kiểu dữ liệu là từ đồng nghĩa với rowversion loại dữ liệu. Xem bên dưới để biết thêm thông tin.
Loại 'con trỏ', 'bảng' và 'chuyển đổi hàng'
Tôi truy xuất thông tin trong các bảng trên qua sys.types
xem danh mục hệ thống. Ngoài các loại trên, tài liệu của Microsoft về loại dữ liệu cũng liệt kê con trỏ và bảng loại, cũng như lộn xộn thay vì dấu thời gian .
Loại 'dấu thời gian'
Microsoft khuyên rằng dấu thời gian cú pháp không được dùng nữa. Chúng tôi khuyên bạn nên sử dụng chuyển đổi hàng hóa thay vì dấu thời gian bất cứ khi nào có thể trong các tuyên bố DDL của chúng tôi.
Tuy nhiên, trong thời gian chờ đợi, bạn có thể thấy các cột dường như vẫn được xác định là dấu thời gian ngay cả khi bạn chỉ định rõ ràng lộn xộn khi tạo chúng (sử dụng Transact-SQL). Tuy nhiên, Microsoft khuyên rằng đây là cú pháp chính xác để sử dụng trong tương lai.
Cũng lưu ý rằng dấu thời gian trong T-SQL / SQL Server khác với dấu thời gian kiểu dữ liệu được xác định trong tiêu chuẩn ISO.
Có vẻ như lý do nó không được dùng nữa là do tên của nó gây ra nhầm lẫn. Microsoft đã thừa nhận điều này vào năm 2007 và khuyên rằng họ sẽ cố gắng giải quyết nó theo cách tương thích ngược trong các bản phát hành trong tương lai.
Kiểm tra Cơ sở dữ liệu của riêng bạn
Bạn có thể truy xuất thông tin kiểu dữ liệu cho cơ sở dữ liệu của riêng mình bằng cách sử dụng sys.types
chế độ xem hệ thống. Xem Cách trả về danh sách các kiểu dữ liệu trong SQL Server để biết giải thích và ví dụ. Chạy dạng xem này cũng trả về mọi bí danh và kiểu do người dùng xác định có trong cơ sở dữ liệu.