准备的语句的表值参数元数据
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)
应用程序可以通过 SQLNumParams 和 SQLDescribeParam 获取准备好的过程调用的元数据。 对于表值参数, DataTypePtr 设置为SQL_SS_TABLE。 可通过 SQLGetDescField 获取其他元数据,以便SQL_CA_SS_TYPE_NAME、SQL_CA_SS_CATALOG_NAME和SQL_CA_SS_SCHEMA_NAME。
SQL_CA_SS_TYPE_NAME、SQL_CA_SS_CATALOG_NAME和SQL_CA_SS_SCHEMA_NAME可用于 SQLColumns,以获取与表值参数关联的表类型的列元数据。 在这种情况下,在调用 SQLColumns 之前,必须将SQL_SOPT_SS_NAME_SCOPE设置为SQL_SS_NAME_SCOPE_TABLE_TYPE。 在应用程序检索完表值参数列元数据之后,应将 SQL_SOPT_SS_NAME_SCOPE 设置回原来的默认值 SQL_SS_NAME_SCOPE_TABLE。
也可以将 SQL_CA_SS_TYPE_NAME、SQL_CA_SS_CATALOG_NAME 和 SQL_CA_SS_SCHEMA_NAME 用于 CLR 用户定义类型参数。
无法获取非存储过程调用的准备的语句的表值参数元数据。 如果试图这样做,应用程序将返回错误代码为 SQLSTATE 42000 的 SQL_ERROR,以及消息“语法错误或访问冲突”。