适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
本主题提供有关 COLUMNS 行集和 PROCEDURE_PARAMETERS 行集的信息。 该信息与 SQL Server 2008 (10.0.x) 中引入的 OLE DB 日期和时间增强功能相关。
COLUMNS 行集
对于日期/时间类型将返回以下列值:
| 列类型 | DATA_TYPE | COLUMN_FLAGS, DBCOLUMFLAGS_SS_ISVARIABLESCALE | DATETIME_PRECISION |
|---|---|---|---|
| date | DBTYPE_DBDATE | Clear | 0 |
| time | DBTYPE_DBTIME2 | Set | 0..7 |
| smalldatetime | DBTYPE_DBTIMESTAMP | Clear | 0 |
| datetime | DBTYPE_DBTIMESTAMP | Clear | 3 |
| datetime2 | DBTYPE_DBTIMESTAMP | Set | 0..7 |
| datetimeoffset | DBTYPE_DBTIMESTAMPOFFSET | Set | 0..7 |
在 COLUMN_FLAGS 中,对于日期/时间类型,DBCOLUMNFLAGS_ISFIXEDLENGTH 始终为 True,并且以下标记始终为 False:
DBCOLUMNFLAGS_CACHEDEFERRED
DBCOLUMNFLAGS_ISBOOKMARK
DBCOLUMNFLAGS_ISCHAPTER
DBCOLUMNFLAGS_ISLONG
DBCOLUMNFLAGS_ISROWID
DBCOLUMNFLAGS_ISROWVER
DBCOLUMNFLAGS_MAYDEFER
其余的标记(DBCOLUMNFLAGS_ISNULLABLE、DBCOLUMNFLAGS_MAYBENULL、DBCOLUMNFLAGS_WRITE 和 DBCOLUMNFLAGS_WRITEUNKNOWN)可能被设置,具体取决于列的定义方式。
在 COLUMN_FLAGS 中提供了新标记 DBCOLUMNFLAGS_SS_ISVARIABLESCALE,以允许应用程序确定 DATA_TYPE 为 DBTYPE_DBTIMESTAMP 的那些列的服务器类型。 为标识服务器类型还必须使用 DATETIME_PRECISION。
仅当连接到 SQL Server 2008 (10.0.x) 或更高版本的服务器时,DBCOLUMNFLAGS_SS_ISVARIABLESCALE才有效。 连接到下级服务器时,未定义 DBCOLUMNFLAGS_SS_ISFIXEDSCALE。
PROCEDURE_PARAMETERS 行集
DATA_TYPE 包含与 COLUMNS 架构行集相同的值,并且 TYPE_NAME 包含服务器类型。
已添加新列 SS_DATETIME_PRECISION,以便返回类似于 COLUMNS 行集的 DATETIME_PRECISION 列中的类型精度。
PROVIDER_TYPES 行集
对于日期/时间类型将返回以下行:
| 类型 -> 列 |
date | time | smalldatetime | datetime | datetime2 | datetimeoffset |
|---|---|---|---|---|---|---|
| TYPE_NAME | date | time | smalldatetime | datetime | datetime2 | datetimeoffset |
| DATA_TYPE | DBTYPE_DBDATE | DBTYPE_DBTIME2 | DBTYPE_DBTIMESTAMP | DBTYPE_DBTIMESTAMP | DBTYPE_DBTIMESTAMP | DBTYPE_DBTIMESTAMPOFFSET |
| COLUMN_SIZE | 10 | 16 | 16 | 23 | 27 | 34 |
| LITERAL_PREFIX | “ | “ | “ | “ | “ | “ |
| LITERAL_SUFFIX | “ | “ | “ | “ | “ | “ |
| CREATE_PARAMS | Null | scale | Null | Null | scale | scale |
| IS_NULLABLE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE |
| CASE_SENSITIVE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
| SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE | DB_SEARCHABLE |
| UNSIGNED_ATTRIBUTE | Null | Null | Null | Null | Null | Null |
| FIXED_PREC_SCALE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
| AUTO_UNIQUE_VALUE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
| LOCAL_TYPE_NAME | date | time | smalldatetime | datetime | datetime2 | datetimeoffset |
| MINIMUM_SCALE | Null | 0 | Null | Null | 0 | 0 |
| MAXIMUM_SCALE | Null | 7 | Null | Null | 7 | 7 |
| GUID | Null | Null | Null | Null | Null | Null |
| TYPELIB | Null | Null | Null | Null | Null | Null |
| VERSION | Null | Null | Null | Null | Null | Null |
| IS_LONG | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE | VARIANT_FALSE |
| BEST_MATCH | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE,除非符合以下某项条件: 是连接到下级服务器的客户端。 数据类型兼容性连接属性指定兼容性级别为 80。 |
VARIANT_TRUE,除非符合以下某项条件: 是连接到下级服务器的客户端。 数据类型兼容性连接属性指定兼容性级别为 80。 |
VARIANT_TRUE |
| IS_FIXEDLENGTH | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE | VARIANT_TRUE |
OLE DB 仅定义数字和小数类型的MINIMUM_SCALE和MAXIMUM_SCALE,因此 SQL Server Native Client 将这些列用于时间、datetime2 和 datetimeoffset 是非标准的。