Transact-SQL 参考

sp_datatype_info

返回有关当前环境所支持的数据类型的信息。

语法

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 列的返回值以 10 为基数。
LITERAL_PREFIX varchar(32) 常量前使用的字符。例如,在 Microsoft® SQL Server™ 中,字符类型使用单引号 ('),二进制使用 Ox。
LITERAL_SUFFIX varchar(32) 终止常量时使用的字符。例如,字符类型使用单引号 ('),二进制不使用任何字符。
CREATE_PARAMS varchar(32) 此数据类型的创建参数的描述。例如,decimal 是"precision, scale",float 是 NULL,varchar 是"max_length"。
NULLABLE smallint 指定是否可以为空。

1 = 允许空值。
0 = 不允许空值。

CASE_SENSITIVE smallint 指定是否区分大小写。

1 = 此类型的所有列都区分大小写(用于排序规则)。
0 = 此类型的所有列都不区分大小写。

SEARCHABLE smallint 列的类型。

1 = 此类型的列可以用于 WHERE 子句中。
0 = 此类型的列不能用于 WHERE 子句中。

UNSIGNED_ATTRIBUTE smallint 指定数据类型的符号。

1 = 数据类型没有符号。
0 = 数据类型有符号。

MONEY smallint 指定 money 数据类型。
1 = money 数据类型。
0 = 非 money 数据类型。
AUTO_INCREMENT smallint 指定自动增量。

1 = 自动增量。
0 = 不自动增量。
NULL = 属性不适用。

应用程序可以将值插入具有此属性的列中,但不能更新列中的值。AUTO_INCREMENT 仅对分类数据类型有效。

LOCAL_TYPE_NAME sysname 与数据源相关的数据类型名称的本地化版本。例如,DECIMAL 的法语版本是 DECIMALE。如果是数据源不支持的本地化名称,则返回 NULL。
MINIMUM_SCALE smallint 数据源中数据类型的最小小数位数。如果数据源的小数位数固定,则 MINIMUM_SCALEMAXIMUM_SCALE 列将同时包含此值。当小数位数不适用时,将返回 NULL。
MAXIMUM_SCALE smallint 数据源中数据类型的最大小数位数。如果在数据源中没有单独定义最大小数位数,而是将其定义为与最大精度相同,则此列的值与 PRECISION 列的值相同。
SQL_DATA_TYPE smallint SQL 数据类型出现在描述符的 TYPE 字段中时的值。此列与 DATA_TYPE 列相同(除 datetime 和 ANSI interval 数据类型以外)。该字段始终返回值。
SQL_DATETIME_SUB smallint 如果 SQL_DATA_TYPE 的值为 SQL_DATETIMESQL_INTERVAL,则此字段为 datetime 或 ANSI interval 子代码。对于非 datetime 和非 ANSI interval 的数据类型,此字段为 NULL。
NUM_PREC_RADIX int 计算一个列所能容纳的最大数时所采用的位数或数字个数。如果是近似数字数据类型,则此列包含的值为 2,表明位数。对于精确数字数据类型,此列包含的值为 10,表明十进制数字的个数。否则此列为 NULL。通过将精度和基数相结合,应用程序可以计算出列所能容纳的最大数。
INTERVAL_PRECISION smallint 如果 data_typeinterval,则为间隔起始精度的值;否则,为 NULL。
USERTYPE smallint 来自 systypes 表的 usertype 值。

注释

sp_datatype_info 等价于 ODBC 中的 SQLGetTypeInfo。返回结果按 DATA_TYPE 排序,再按数据类型映射为相应 ODBC SQL 数据类型的紧密程度进行排序。

权限

执行权限默认授予 public 角色。

示例

下面的示例通过将 DATA_TYPE 的值指定为 –9,检索 sysname nvarchar 数据类型的信息。

USE master
EXEC sp_datatype_info -9

请参见

数据类型

系统存储过程