共用方式為


sp_datatype_info (Transact-SQL)

傳回目前環境所支援之資料類型的相關資訊。

適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。

主題連結圖示 Transact-SQL 語法慣例

語法

sp_datatype_info [ [ @data_type = ] data_type ] 
     [ , [ @ODBCVer = ] odbc_version ] 

引數

  • [ @data_type= ] data_type
    這是指定之資料類型的代號。 若要取得所有資料類型的清單,請省略這個參數。 data_type 是 int,預設值是 0。

  • [ @ODBCVer= ] odbc_version
    這是所使用的 ODBC 版本。 odbc_version 是 tinyint,預設值是 2。

傳回碼值

結果集

資料行名稱

資料類型

說明

TYPE_NAME

sysname

DBMS 相依資料類型。

DATA_TYPE

smallint

這個類型的所有資料行所對應之 ODBC 類型的代碼。

PRECISION

int

資料來源的資料類型最大有效位數。 有效位數不適用的資料類型會傳回 NULL。 PRECISION 資料行的傳回值為十進位數。

LITERAL_PREFIX

varchar(32)

常數前面所用的一或多個字元。 例如,單引號 (') 用於字元類型,0x 用於二進位。

LITERAL_SUFFIX

varchar(32)

用來結束常數的一或多個字元。 例如,單引號 (') 用於字元類型,而二進位不用引號。

CREATE_PARAMS

varchar(32)

這個資料類型之建立參數的描述。 例如,decimal 是 "precision, scale",float 是 NULL,varchar 是 "max_length"。

NULLABLE

smallint

指定 Null 屬性。

1 = 允許 Null 值。

0 = 不允許 Null 值。

CASE_SENSITIVE

smallint

指定是否區分大小寫。

1 = 這類型的所有資料行都會區分大小寫 (用於定序)。

0 = 這個類型的所有資料行都不區分大小寫。

SEARCHABLE

smallint

指定資料行類型的搜尋功能:

1 = 無法搜尋。

2 = 可使用 LIKE 搜尋。

3 = 可使用 WHERE 搜尋。

4 = 可使用 WHERE 或 LIKE 搜尋。

UNSIGNED_ATTRIBUTE

smallint

指定資料類型的正負號。

1 = 資料類型不帶正負號。

0 = 資料類型帶正負號。

MONEY

smallint

指定 money 資料類型。

1 = money 資料類型。

0 = 不是 money 資料類型。

AUTO_INCREMENT

smallint

指定自動累加。

1 = 自動累加。

0 = 不自動累加。

NULL = 屬性不適用。

應用程式可以將值插入包含這個屬性的資料行中,但應用程式不能更新這個資料行中的值。 除了 bit 資料類型之外,AUTO_INCREMENT 只適用於屬於「精確數值」和「近似數值」資料類型類別目錄的資料類型。

LOCAL_TYPE_NAME

sysname

資料類型之資料來源相依名稱的當地語系化版本。 例如,法文的 DECIMAL 是 DECIMALE。 如果資料來源不支援當地語系化名稱,便傳回 NULL。

MINIMUM_SCALE

smallint

資料來源的資料類型最小小數位數。 如果資料類型有固定的小數位數,MINIMUM_SCALE 和 MAXIMUM_SCALE 資料行都包含這個值。 當小數位數不適用時,會傳回 NULL。

MAXIMUM_SCALE

smallint

資料來源的資料類型最大小數位數。 如果未在資料來源上個別定義最大小數位數,而是定義成與最大有效位數相同,這個資料行會包含與 PRECISION 資料行相同的值。

SQL_DATA_TYPE

smallint

SQL 資料類型出現在描述子之 TYPE 欄位時的值。 除了 datetime 和 ANSI interval 資料類型以外,這個資料行與 DATA_TYPE 資料行相同。 這個欄位一律會傳回值。

SQL_DATETIME_SUB

smallint

如果 SQL_DATA_TYPE 的值是 SQL_DATETIME 或 SQL_INTERVAL,則為 datetime 或 ANSI interval 子代碼。 如果是 datetime 和 ANSI interval 以外的資料類型,這個欄位便是 NULL。

NUM_PREC_RADIX

int

用來計算資料行所能保留的最大數字之位元或位數數目。 如果資料類型是近似數值資料類型,這個資料行會包含 2 這個值來表示多個位元。 如果是精確數值類型,這個資料行會包含 10 這個值來表示多個十進位數。 否則,這個資料行就是 NULL。 藉由組合有效位數和基數,應用程式可以計算資料行所能保留的最大數目。

INTERVAL_PRECISION

smallint

如果 data_type 是 interval,便是間隔開頭有效位數的值;否則,便是 NULL。

USERTYPE

smallint

systypes 資料表的 usertype 值。

備註

sp_datatype_info 相當於 ODBC 中的 SQLGetTypeInfo。 傳回的結果是依 DATA_TYPE 排序,之後再依資料類型與對應的 ODBC SQL 資料類型的對應緊密程度來排序。

權限

需要 public 角色中的成員資格。

範例

下列範例會將 data_type 值指定為 -9,來擷取 sysname 和 nvarchar 資料類型的資訊。

USE master;
GO
EXEC sp_datatype_info -9;
GO

請參閱

參考

Database Engine 預存程序 (Transact-SQL)

資料類型 (Transact-SQL)

系統預存程序 (Transact-SQL)