SQLDescribeCol
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)
对于执行的语句,SQL Server Native Client ODBC 驱动程序不需要查询服务器来描述结果集中的列。 在这种情况下, SQLDescribeCol 不会导致服务器往返。 与 SQLColAttribute 和 SQLNumResultCols 一样,在准备好但未执行的语句上调用 SQLDescribeCol 会生成服务器往返。
当 Transact-SQL 语句或语句批处理返回多个结果行集时,可以由序号引用的列源自单独的表或引用结果集中的完全不同的列。 应为每个集调用 SQLDescribeCol 。 如果结果集有变化,应用程序应该在提取行结果之前重新绑定数据值。 有关处理多个结果集返回的详细信息,请参阅 SQLMoreResults。
当已准备的一批 SQL 语句生成多个结果集时,只为第一个结果集报告列属性。
对于大型值数据类型,DataTypePtr 中返回的值SQL_VARCHAR、SQL_VARBINARY或SQL_NVARCHAR。 ColumnSizePtr 中SQL_SS_LENGTH_UNLIMITED的值指示大小为“无限制”。
从 SQL Server 2012 (11.x) 开始的数据库引擎改进使 SQLDescribeCol 能够获取预期结果的更准确说明。 这些更准确的结果可能与 SQL Server 早期版本中 SQLDescribeCol 返回的值不同。 有关详细信息,请参阅元数据发现。
SQLDescribeCol 对日期和时间增强功能的支持
日期/时间类型返回以下值:
属性 | DataTypePtr | ColumnSizePtr | DecimalDigitsPtr |
---|---|---|---|
datetime | SQL_TYPE_TIMESTAMP | 23 | 3 |
smalldatetime | SQL_TYPE_TIMESTAMP | 16 | 0 |
date | SQL_TYPE_DATE | 10 | 0 |
time | SQL_SS_TIME2 | 8, 10..16 | 0..7 |
datetime2 | SQL_TYPE_TIMESTAMP | 19、21..27 | 0..7 |
datetimeoffset | SQL_SS_TIMESTAMPOFFSET | 26、28..34 | 0..7 |
有关详细信息,请参阅日期和时间改进(ODBC)。
SQLDescribeCol 对大型 CLR UDT 的支持
SQLDescribeCol 支持大型 CLR 用户定义类型(UDT)。 有关详细信息,请参阅大型 CLR 用户定义的类型(ODBC)。