Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytický platformový systém (PDW)
SQL databáze v Microsoft Fabric
Provedení příkazu s tabulkovými parametry vyžaduje dvě fáze:
Specifikujte typy parametrů.
Připojte parametrová data.
Table-Valued Specifikace parametrů
Spotřebitel může určit typ parametru s tabulkovou hodnotou. Tyto informace zahrnují název typu parametru s hodnotou tabulky. Zahrnuje také název schématu, pokud uživatelem definovaný typ tabulky pro parametr s tabulkovou hodnotou není v aktuálním výchozím schématu pro spojení. V závislosti na podpoře serveru může uživatel také zadat volitelné metadatové informace, například pořadí sloupců, a může uvádět, že všechny řádky pro konkrétní sloupce mají výchozí hodnoty.
Pro určení parametru s tabulkovou hodnotou spotřebitel volá ISSCommandWithParameter::SetParameterInfo a volitelně ISSCommandWithParameters::SetParameterProperties. Pro parametr s tabulkovou hodnotou má pole pwszDataSourceType ve struktuře DBPARAMBINDINFO hodnotu DBTYPE_TABLE. Pole ulParamSize je nastaveno na ~0, aby označilo, že délka není známá. Specifické vlastnosti pro tabulkově hodnotové parametry, jako je název schématu, název typu, pořadí sloupců a výchozí sloupce, lze nastavit pomocí ISSCommandWithParameters::SetParameterProperties.
Table-Valued Vázání parametrů
Parametr s tabulkovou hodnotou může být jakýkoli objekt v sadě řádků. Poskytovatel čte z tohoto objektu a během vykonávání posílá serveru tabulkové parametry.
Pro navázání parametru s tabulkovou hodnotou spotřebitel volá IAccessor::CreateAccessor. Pole wType struktury DBBINDING pro parametr s tabulkovou hodnotou je nastaveno na DBTYPE_TABLE. Člen pObject struktury DBBINDING není NULL a iid člen pObjectu je nastaven na rozhraní IID_IRowset nebo jiné tabulkově hodnotové řádkové rozhraní. Zbývající pole ve struktuře DBBINDINGu by měla být nastavena stejně jako pro streamované BLOBy.
V vazbách pro parametr s tabulkovou hodnotou a objekt řádku spojený s parametrem tabulkové hodnoty platí následující omezení:
Jediné stavové hodnoty povolené pro tabulkové řádky parametrů jsou DBSTATUS_S_ISNULL a DBSTATUS_S_OK. DBSTATUS_S_DEFAULT povede k selhání a hodnota stavu bound bude nastavena na DBSTATUS_E_BADSTATUS.
Parametr s tabulkovou hodnotou lze označit stavem DBSTATUS_S_DEFAULT. Jediné platné hodnoty jsou DBSTATUS_S_DEFAULT a DBSTATUS_S_OK. Když je stav nastaven na DBSTATUS_S_DEFAULT, hodnota parametru tabulky odpovídá prázdné tabulce.
Sloupce pouze pro čtení v tabulkových parametrech (identita nebo vypočítané sloupce) musí být označeny jako výchozí pomocí vlastnosti SSPROP_PARAM_TABLE_DEFAULT_COLUMNS. Sloupce s výchozí hodnotou musí být také označeny jako výchozí pomocí vlastnosti SSPROP_PARAM_TABLE_DEFAULT_COLUMNS, aby bylo možné výchozí hodnotu použít pro datové hodnoty sloupce pro konkrétní parametr tabulkové hodnoty. Poskytovatel ignoruje omezení datových hodnot pro sloupce označené jako výchozí.
Data budou odeslána serveru pro sloupce s DBPROP_COL_AUTOINCREMENT nebo SSPROP_COL_COMPUTED, pokud není nastaveno také SSPROP_PARAM_TABLE_DEFAULT.
Viz také
Table-Valued Parametry (OLE DB)
Použijte Table-Valued parametry (OLE DB)