sp_datatype_info (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 列的返回值以 10 为基数。 |
LITERAL_PREFIX |
varchar(32) |
常量前使用的一个或多个字符。例如,字符类型使用单引号 ('),SQL Server 2005 中的二进制使用 0x。 |
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 = 属性不适用。 应用程序可以将值插入具有该属性的列中,但应用程序不能更新列中的值。除了 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 字段中显示的值。该列与 DATA_TYPE 列相同(但 datetime 和 ANSI interval 数据类型除外)。该字段始终返回值。 |
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
请参阅
参考
数据库引擎存储过程 (Transact-SQL)
数据类型 (Transact-SQL)
系统存储过程 (Transact-SQL)