返回有关当前环境所支持的数据类型的信息。
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 = 允许空值。 |
CASE_SENSITIVE | smallint | 指定是否区分大小写。
1 = 此类型的所有列都区分大小写(用于排序规则)。 |
SEARCHABLE | smallint | 列的类型。
1 = 此类型的列可以用于 WHERE 子句中。 |
UNSIGNED_ATTRIBUTE | smallint | 指定数据类型的符号。
1 = 数据类型没有符号。 |
MONEY | smallint | 指定 money 数据类型。 1 = money 数据类型。 0 = 非 money 数据类型。 |
AUTO_INCREMENT | smallint | 指定自动增量。
1 = 自动增量。 应用程序可以将值插入具有此属性的列中,但不能更新列中的值。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 EXEC sp_datatype_info -9