Để tránh các hàng trùng lặp cho một số cột, hãy sử dụng user_type_id thay vì system_type_id.
SELECT
c.name 'Column Name',
t.Name 'Data type',
c.max_length 'Max Length',
c.precision ,
c.scale ,
c.is_nullable,
ISNULL(i.is_primary_key, 0) 'Primary Key'
FROM
sys.columns c
INNER JOIN
sys.types t ON c.user_type_id = t.user_type_id
LEFT OUTER JOIN
sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN
sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE
c.object_id = OBJECT_ID('YourTableName')
Chỉ cần thay thế YourTableName
với tên bảng thực của bạn - hoạt động cho SQL Server 2005 trở lên.
Trong trường hợp bạn đang sử dụng lược đồ, hãy thay thế YourTableName
bởi YourSchemaName.YourTableName
nơi YourSchemaName
là tên lược đồ thực tế và YourTableName
là tên bảng thực tế.