[SQL]列出某個資料庫中所有的欄位資訊

[SQL]列出某個資料庫中所有的欄位資訊

以下的SQL參考自「List All The Column With Specific Data Types in Database

,針對這種可能要備在手邊的SQL,當然是馬上記錄下來。


--列出資料庫中所有欄位的資訊
SELECT s.name AS 'schema', ts.name AS TableName,
c.name AS column_name, c.column_id,
SCHEMA_NAME(t.schema_id) AS DatatypeSchema,
t.name AS Datatypename
,t.is_user_defined, t.is_assembly_type
,c.is_nullable, c.max_length, c.PRECISION,
c.scale
FROM sys.columns AS c
INNER JOIN sys.types AS t ON c.user_type_id=t.user_type_id
INNER JOIN sys.tables ts ON ts.OBJECT_ID = c.OBJECT_ID
INNER JOIN sys.schemas s ON s.schema_id = ts.schema_id
ORDER BY s.name, ts.name, c.column_id

image

以上要注意的是max_length欄位值,

資料行的最大長度 (以位元組為單位)。
-1 = 資料行資料類型是 varchar(max)、nvarchar(max)、varbinary(max) 或 xml。
對於 text 資料行來說,max_length 值將會是 16 或由 sp_tableoption 'text in row' 設定的值。

 

詳細資訊請參考「sys.columns (Transact-SQL)

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^