返回有關(guān)當(dāng)前環(huán)境所支持的數(shù)據(jù)類型的信息。
sp_datatype_info [ [ @data_type = ] data_type ]
[ , [ @ODBCVer = ] odbc_version ]
[@data_type =] data_type
指定數(shù)據(jù)類型的代碼。要獲取所有數(shù)據(jù)類型的列表,請省略該參數(shù)。data_type 的數(shù)據(jù)類型為 int,默認(rèn)值為 0。
[@ODBCVer =] odbc_version
所用 ODBC 的版本。odbc_version 的數(shù)據(jù)類型為 tinyint,默認(rèn)值為 2。
無
列名 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
TYPE_NAME | sysname | 與 DBMS 相關(guān)的數(shù)據(jù)類型。 |
DATA_TYPE | smallint | 此類型的所有列所映射的 ODBC 類型代碼。 |
PRECISION | int | 數(shù)據(jù)源中數(shù)據(jù)類型的最大精度。數(shù)據(jù)類型的精度不適用時返回 NULL。PRECISION 列的返回值以 10 為基數(shù)。 |
LITERAL_PREFIX | varchar(32) | 常量前使用的字符。例如,在 Microsoft® SQL Server™ 中,字符類型使用單引號 ('),二進制使用 Ox。 |
LITERAL_SUFFIX | varchar(32) | 終止常量時使用的字符。例如,字符類型使用單引號 ('),二進制不使用任何字符。 |
CREATE_PARAMS | varchar(32) | 此數(shù)據(jù)類型的創(chuàng)建參數(shù)的描述。例如,decimal 是"precision, scale",float 是 NULL,varchar 是"max_length"。 |
NULLABLE | smallint | 指定是否可以為空。 1 = 允許空值。 |
CASE_SENSITIVE | smallint | 指定是否區(qū)分大小寫。 1 = 此類型的所有列都區(qū)分大小寫(用于排序規(guī)則)。 |
SEARCHABLE | smallint | 列的類型。 1 = 此類型的列可以用于 WHERE 子句中。 |
UNSIGNED_ATTRIBUTE | smallint | 指定數(shù)據(jù)類型的符號。 1 = 數(shù)據(jù)類型沒有符號。 |
MONEY | smallint | 指定 money 數(shù)據(jù)類型。 1 = money 數(shù)據(jù)類型。 0 = 非 money 數(shù)據(jù)類型。 |
AUTO_INCREMENT | smallint | 指定自動增量。 1 = 自動增量。 應(yīng)用程序可以將值插入具有此屬性的列中,但不能更新列中的值。AUTO_INCREMENT 僅對分類數(shù)據(jù)類型有效。 |
LOCAL_TYPE_NAME | sysname | 與數(shù)據(jù)源相關(guān)的數(shù)據(jù)類型名稱的本地化版本。例如,DECIMAL 的法語版本是 DECIMALE。如果是數(shù)據(jù)源不支持的本地化名稱,則返回 NULL。 |
MINIMUM_SCALE | smallint | 數(shù)據(jù)源中數(shù)據(jù)類型的最小小數(shù)位數(shù)。如果數(shù)據(jù)源的小數(shù)位數(shù)固定,則 MINIMUM_SCALE 和 MAXIMUM_SCALE 列將同時包含此值。當(dāng)小數(shù)位數(shù)不適用時,將返回 NULL。 |
MAXIMUM_SCALE | smallint | 數(shù)據(jù)源中數(shù)據(jù)類型的最大小數(shù)位數(shù)。如果在數(shù)據(jù)源中沒有單獨定義最大小數(shù)位數(shù),而是將其定義為與最大精度相同,則此列的值與 PRECISION 列的值相同。 |
SQL_DATA_TYPE | smallint | SQL 數(shù)據(jù)類型出現(xiàn)在描述符的 TYPE 字段中時的值。此列與 DATA_TYPE 列相同(除 datetime 和 ANSI interval 數(shù)據(jù)類型以外)。該字段始終返回值。 |
SQL_DATETIME_SUB | smallint | 如果 SQL_DATA_TYPE 的值為 SQL_DATETIME 或 SQL_INTERVAL,則此字段為 datetime 或 ANSI interval 子代碼。對于非 datetime 和非 ANSI interval 的數(shù)據(jù)類型,此字段為 NULL。 |
NUM_PREC_RADIX | int | 計算一個列所能容納的最大數(shù)時所采用的位數(shù)或數(shù)字個數(shù)。如果是近似數(shù)字?jǐn)?shù)據(jù)類型,則此列包含的值為 2,表明位數(shù)。對于精確數(shù)字?jǐn)?shù)據(jù)類型,此列包含的值為 10,表明十進制數(shù)字的個數(shù)。否則此列為 NULL。通過將精度和基數(shù)相結(jié)合,應(yīng)用程序可以計算出列所能容納的最大數(shù)。 |
INTERVAL_PRECISION | smallint | 如果 data_type 為 interval,則為間隔起始精度的值;否則,為 NULL。 |
USERTYPE | smallint | 來自 systypes 表的 usertype 值。 |
sp_datatype_info 等價于 ODBC 中的 SQLGetTypeInfo。返回結(jié)果按 DATA_TYPE 排序,再按數(shù)據(jù)類型映射為相應(yīng) ODBC SQL 數(shù)據(jù)類型的緊密程度進行排序。
執(zhí)行權(quán)限默認(rèn)授予 public 角色。
下面的示例通過將 DATA_TYPE 的值指定為 9,檢索 sysname 和 nvarchar 數(shù)據(jù)類型的信息。
USE master相關(guān)文章
EXEC sp_datatype_info -9