Deskriptorfelder für aus Tabellenwertparameter bestehenden Spalten
Die in diesem Abschnitt beschriebenen Tabellenwertparameterdeskriptorfelder werden mithilfe von SQLSetDescField und SQLSetDescField mit dem Handle für den Implementierungsparameterdeskriptor (IPD) bearbeitet.
Bemerkungen
SQL_DESC_AUTO_UNIQUE_VALUE wird für Tabellenwertparameter sowie für andere Funktionen verwendet.
Attributname | type | BESCHREIBUNG |
---|---|---|
SQL_DESC_AUTO_UNIQUE_VALUE | SQLINTEGER | SQL_TRUE gibt an, dass es sich bei dieser Spalte um eine Identitätsspalte handelt. SQL Server können diese Informationen verwenden, um die Leistung zu optimieren, aber Anwendungen müssen sie nicht für Identitätsspalten festlegen. |
Die folgenden Attribute werden allen Parametertypen im Anwendungsparameterdeskriptor (Application Parameter Descriptor, APD) und Implementierungsparameterdeskriptor (Implementation Parameter Descriptor, IPD) hinzugefügt:
Attributname | type | BESCHREIBUNG |
---|---|---|
SQL_CA_SS_COLUMN_COMPUTED | SQLSMALLINT | SQL_TRUE gibt an, dass diese Spalte berechnet wird. SQL Server können diese Informationen verwenden, um die Leistung zu optimieren, aber Anwendungen müssen sie nicht für berechnete Spalten festlegen. Dieses Attribut wird für Bindungen ignoriert, die keine Tabellenwertparameter-Spalten sind. |
SQL_CA_SS_COLUMN_IN_UNIQUE_KEY | SQLSMALLINT | SQL_TRUE gibt an, dass eine Tabellenwertparameter-Spalte zu einem eindeutigen Schlüssel gehört. Dies kann zu einer verbesserten Abfrageleistung führen. Dieses Attribut wird für Bindungen ignoriert, die keine Tabellenwertparameter-Spalten sind. |
SQL_CA_SS_COLUMN_SORT_ORDER | SQLSMALLINT | Gibt die Sortierreihenfolge einer Tabellenwertparameter-Spalte an. Dies kann zu einer verbesserten Abfrageleistung führen. Dieses Attribut wird für Bindungen ignoriert, die keine Tabellenwertparameter-Spalten sind. Folgende Werte sind möglich: – SQL_SS_ASCENDING_ORDER – SQL_SS_DESCENDING_ORDER – SQL_SS_ORDER_UNSPECIFIED Andere Werte als SQL_SS_ASCENDING_ORDER und SQL_SS_DESCENDING_ORDER erzeugen einen Fehler mit SQLSTATE HY024 und die Meldung 'Ungültiger Attributwert'. Sie werden als SQL_SS_ORDER_UNSPECIFIED behandelt. Dies ist der Standardwert für dieses Attribut. |
SQL_CA_SS_COLUMN_SORT_ORDINAL | SQLSMALLINT | Gibt die Ordnungszahl einer Tabellenwertparameter-Spalte in einer Gruppe von Spalten an, die die Gesamtreihenfolge für einen Tabellenwertparameter festlegt. Dies kann zu einer verbesserten Abfrageleistung führen. Dieses Attribut wird für Bindungen ignoriert, die keine Tabellenwertparameter-Spalten sind. Die Sortierung der Ordinalzahlen beginnt bei 1. Der Wert 0 ist der Standardwert und gibt eine Tabellenwertparameter-Spalte an, für die keine Spaltenreihenfolge angegeben wurde. |
SQL_CA_SS_COLUMN_HAS_DEFAULT_VALUE | SQLSMALLINT | Gibt an, ob alle Zeilen im Tabellenwertparameter den Standardwert für diese Spalte enthalten. Für Tabellenwertparameter ist es nicht möglich, den Standardwert auf Zeilenbasis auszuwählen. Der Wert SQL_FALSE gibt an, dass Zeilen nicht standardmäßige Werte enthalten. Dies ist die Standardoption. Der Wert SQL_TRUE gibt an, dass diese Spalte Standardwerte für alle Zeilen enthält. Wurde der Wert auf SQL_TRUE festgelegt, werden keine Daten an den Server gesendet. Dieses Feld kann auch mit Identitätsspalten oder berechneten Spalten verwendet werden, wenn die Spaltenwerte nicht für die Serververarbeitung erforderlich sind. |
Diese Attribute sind nur für Tabellenwertparameter-Spalten gültig. Sie werden für andere Parameter ignoriert.
Wenn SQL_CA_SS_COL_HAS_DEFAULT_VALUE für eine Tabellenwertparameter-Spalte festgelegt wurde, muss SQL_DESC_DATA_PTR für diese Spalte ein NULL-Zeiger sein. Andernfalls gibt SQLExecute oder SQLExecDirect SQL_ERROR zurück. Ein Diagnosedatensatz wird mit SQLSTATE=07S01 und der Meldung "Ungültige Verwendung des Standardparameters für Parameter <p>, Spalte <c>" generiert, wobei <p> die Parameter ordinal und <c> die Ordnungszahl der Spalte ist.