GUI như SSMS hoặc Azure Data Studio giúp bạn dễ dàng xem loại dữ liệu của cột. Thông thường, việc điều hướng đến cột trong trình khám phá đối tượng là một vấn đề đơn giản và bạn có thể thấy loại dữ liệu ngay bên cạnh cột.
Nhưng nếu bạn đang sử dụng T-SQL, bạn sẽ cần phải chạy một truy vấn.
information_schema.columns
Xem
information_schema.columns
xem là một lựa chọn tốt nếu bạn chỉ muốn loại dữ liệu và không muốn:
SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
Kết quả mẫu:
+---------------+-------------+--------------+----------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | |---------------+-------------+--------------+----------------| | ProductName | varchar | 255 | 255 | +---------------+-------------+--------------+----------------+
Thay thế Products
và ProductName
với tên của bảng và cột của bạn tương ứng.
OK, tôi đã trả về nhiều hơn một chút ngoài kiểu dữ liệu ở đây. Nhưng bạn có thể bỏ qua các cột khác nếu cần. Hoặc bạn có thể thêm nhiều hơn nữa. Ví dụ:có các cột chứa độ chính xác của cột trong trường hợp bạn đang xem cột số hoặc cột ngày giờ.
Bạn có thể trả về tất cả các cột như sau:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
sys.columns
Xem
sys.columns
xem là một tùy chọn khác. Chúng ta có thể kết hợp điều này với sys.tables
xem để lấy một cột cụ thể từ một bảng cụ thể:
SELECT
c.name,
type_name(c.system_type_id) AS system_type,
type_name(c.user_type_id) AS user_type,
c.max_length,
c.precision,
c.scale
FROM sys.tables t
JOIN sys.columns c ON t.object_id = c.object_id
WHERE t.name = 'Products'
AND c.name = 'ProductName';
Kết quả mẫu:
+-------------+---------------+-------------+--------------+-------------+---------+ | name | system_type | user_type | max_length | precision | scale | |-------------+---------------+-------------+--------------+-------------+---------| | ProductName | varchar | varchar | 255 | 0 | 0 | +-------------+---------------+-------------+--------------+-------------+---------+
Một lần nữa, hãy bao gồm nhiều hoặc ít cột hơn theo yêu cầu.
Trong ví dụ này, tôi đã sử dụng TYPE_NAME()
hàm để trả về tên của kiểu dữ liệu, dựa trên ID của nó. Điều này đã giúp tôi không phải tham gia vào sys.types
bảng.
sp_help
Thủ tục được lưu trữ
sp_help
thủ tục được lưu trữ có thể hữu ích nếu bạn muốn trả lại thêm thông tin về bảng.
Thủ tục được lưu trữ này trả về thông tin về một đối tượng cơ sở dữ liệu (bất kỳ đối tượng nào được liệt kê trong sys.sysobjects
chế độ xem tương thích), kiểu dữ liệu do người dùng xác định hoặc kiểu dữ liệu:
EXEC sp_help Products;
Điều này trả lại rất nhiều đầu ra, vì vậy tôi sẽ không liệt kê tất cả ở đây.
Chỉ cần thay thế Products
với tên của bảng hoặc đối tượng khác mà bạn muốn lấy thông tin.
Lấy loại dữ liệu của cột từ truy vấn
Bạn cũng có thể lấy kiểu dữ liệu của các cột do truy vấn trả về.
Xem Tìm hiểu kiểu dữ liệu của các cột được trả về trong tập kết quả trong SQL Server để biết thêm thông tin và ví dụ.