COLUMNPROPERTY (Transact-SQL)
傳回資料行或程序參數的相關資訊。
語法
COLUMNPROPERTY ( id , column , property )
引數
id
這是包含資料表或處理序識別碼的運算式。column
這是包含資料行或參數名稱的運算式。property
這是包含將傳回之 id 資訊的運算式,它可以是下列值之一。值
描述
傳回的值
AllowsNull
允許 Null 值
1 = TRUE
0 = FALSE
NULL = 輸入無效。
ColumnId
對應於 sys.columns.column_id 的資料行識別碼值。
資料行識別碼
附註當查詢多個資料行時,資料行識別碼值順序可能會有間距。FullTextTypeColumn
在資料表中,用來保留 column 文件類型資訊的 TYPE COLUMN。
這個屬性的第二個參數所傳遞的資料行全文檢索 TYPE COLUMN 識別碼。
IsComputed
資料行是一個計算資料行。
1 = TRUE
0 = FALSE
NULL = 輸入無效。
IsCursorType
程序參數的類型是 CURSOR。
1 = TRUE
0 = FALSE
NULL = 輸入無效。
IsDeterministic
資料行具有決定性。這個屬性只適用於計算資料行和檢視資料行。
1 = TRUE
0 = FALSE
NULL = 輸入無效。不是計算資料行或檢視資料行。
IsFulltextIndexed
資料行已完成全文檢索索引的登錄。
1 = TRUE
0 = FALSE
NULL = 輸入無效。
IsIdentity
資料行使用 IDENTITY 屬性。
1 = TRUE
0 = FALSE NULL = 輸入無效。
IsIdNotForRepl
資料行會檢查 IDENTITY_INSERT 設定。如果未指定 IDENTITY NOT FOR REPLICATION,就不會檢查 IDENTITY_INSERT 設定。
1 = TRUE
0 = FALSE
NULL = 輸入無效。
IsIndexable
資料行可以建立索引。
1 = TRUE
0 = FALSE
NULL = 輸入無效。
IsOutParam
程序參數是一個輸出參數。
1 = TRUE
0 = FALSE NULL = 輸入無效。
IsPrecise
資料行是精確的。這個屬性只適用於具決定性的資料行。
1 = TRUE
0 = FALSE NULL = 輸入無效。不是具決定性的資料行
IsRowGuidCol
資料行有 uniqueidentifier 資料類型,它是用 ROWGUIDCOL 屬性來定義的。
1 = TRUE
0 = FALSE
NULL = 輸入無效。
IsSystemVerified
您可以利用 Database Engine 來驗證資料行的決定性和有效位數屬性。這個屬性只適用於計算資料行和檢視資料行。
1 = TRUE
0 = FALSE
NULL = 輸入無效。
IsXmlIndexable
XML 資料行可用於 XML 索引中。
1 = TRUE
0 = FALSE
NULL = 輸入無效。
Precision
資料行或參數的資料類型長度。
指定的資料行資料類型長度
-1 = xml 或大數值類型
NULL = 輸入無效。
Scale
資料行或參數的資料類型小數位數。
小數位數
NULL = 輸入無效。
SystemDataAccess
資料行是從存取 SQL Server 系統目錄或虛擬系統資料表中之資料的函數衍生而來。這個屬性只適用於計算資料行和檢視資料行。
1 = TRUE (表示唯讀存取。)
0 = FALSE
NULL = 輸入無效。
UserDataAccess
資料行是從存取 SQL Server 本機執行個體所儲存的使用者資料表 (包括檢視和暫存資料表) 中之資料的函數衍生而來。這個屬性只適用於計算資料行和檢視資料行。
1 = TRUE (表示唯讀存取。)
0 = FALSE
NULL = 輸入無效。
UsesAnsiTrim
在最初建立資料表時,ANSI_PADDING 設為 ON。這個屬性只適用於 char 或 varchar 類型的資料行或參數。
1= TRUE
0= FALSE
NULL = 輸入無效。
IsSparse
資料行是疏鬆資料行。如需詳細資訊,請參閱<使用疏鬆資料行>。
1= TRUE
0= FALSE
NULL = 輸入無效。
IsColumnSet
資料行是資料行集。如需詳細資訊,請參閱<使用資料行集>。
1= TRUE
0= FALSE
NULL = 輸入無效。
傳回類型
int
例外
當發生錯誤,或呼叫者沒有檢視物件的權限時,便會傳回 NULL。
在 SQL Server 2008 中,使用者只能檢視使用者擁有或被授與某些權限之安全性實體的中繼資料。這表示發出中繼資料的內建函數 (例如,COLUMNPROPERTY) 會在使用者不具有該物件任何權限時傳回 NULL。如需詳細資訊,請參閱<中繼資料可見性組態>和<中繼資料可見性疑難排解>。
備註
當您檢查資料行的決定性屬性時,請先測試資料行是否為計算資料行。如果是非計算資料行,IsDeterministic 會傳回 NULL。您可以將計算資料行指定成索引資料行。
範例
下列範例會傳回 LastName 資料行的長度。
USE AdventureWorks;
GO
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Contact'),'LastName','PRECISION')AS 'Column Length';
GO
以下為結果集:
Column Length
-------------
50
(1 row(s) affected)