sp_datatype_info (Transact-SQL)

适用于: SQL Server Azure Synapse Analytics

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

Transact-SQL 语法约定

语法

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

自变量

[ @data_type = ] data_type 指定数据类型的代码号。 若要获得所有数据类型的列表,请省略此参数。 data_typeint,默认值为 0。

[ @ODBCVer = ] odbc_version 使用的 ODBC 版本。 odbc_versiontinyint,默认值为 2。

返回代码值

结果集

列名称 数据类型 说明
TYPE_NAME sysname 与 DBMS 相关的数据类型。
DATA_TYPE smallint 此类型的所有列所映射到的 ODBC 类型代码。
PRECISION int 数据源中数据类型的最大精度。 数据类型的精度不适用时返回 NULL。 PRECISION 列的返回值以 10 为基数。
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 = 非 货币 数据类型。
AUTO_INCREMENT smallint 指定自动递增。

1 = 自动递增。

0 = 不自动递增。

NULL = 属性不适用。

应用程序可以将值插入具有此属性的列中,但应用程序不能更新列中的值。 除 数据类型外,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 间隔 数据类型除外。 此字段始终返回值。
SQL_DATETIME_SUB smallint 如果SQL_DATA_TYPE的值为SQL_DATETIME或SQL_INTERVAL,则 datetime 或 ANSI 间隔子代码。 对于 datetime 和 ANSI 间隔以外的数据类型,此字段为 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来检索 sysnamenvarchar 数据类型的信息。

USE master;  
GO  
EXEC sp_datatype_info -9;  
GO  

另请参阅

数据库引擎存储过程 (Transact-SQL)
数据类型 (Transact-SQL)
系统存储过程 (Transact-SQL)