Table-Valued Parametermetadata för förberedda satser

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

En applikation kan erhålla metadata för ett förberedd proceduranrop via SQLNumParams och SQLDescribeParam. För tabellvärda parametrar är DataTypePtr satt till SQL_SS_TABLE. Ytterligare metadata finns tillgänglig via SQLGetDescField för SQL_CA_SS_TYPE_NAME, SQL_CA_SS_CATALOG_NAME och SQL_CA_SS_SCHEMA_NAME.

SQL_CA_SS_TYPE_NAME, SQL_CA_SS_CATALOG_NAME och SQL_CA_SS_SCHEMA_NAME kan användas med SQLColumns för att erhålla kolumnmetadata för tabelltyper kopplade till tabellvärda parametrar. I detta fall måste SQL_SOPT_SS_NAME_SCOPE sättas till SQL_SS_NAME_SCOPE_TABLE_TYPE innan SQLColumns anropas. SQL_SOPT_SS_NAME_SCOPE bör sedan återställas till standardvärdet, SQL_SS_NAME_SCOPE_TABLE, när applikationen har hämtat tabellvärdesparametrarnas kolumnmetadata.

SQL_CA_SS_TYPE_NAME, SQL_CA_SS_CATALOG_NAME och SQL_CA_SS_SCHEMA_NAME kan också användas med CLR:s användardefinierade typparametrar.

Du kan inte få tabellvärd parametermetadata för förberedda satser som inte är anrop för lagrade procedurer. Om du försöker göra detta returnerar applikationen SQL_ERROR med SQLSTATE 42000 och meddelandet "Syntaxfel eller åtkomstöverträdelse".