Deskriptorfelder für aus Tabellenwertparameter bestehenden Spalten

Die in diesem Abschnitt beschriebenen Deskriptorfelder für Tabellenwertparamter werden unter Verwendung von SQLSetDescField und SQLSetDescField mit dem Handle für den Implementierungsparameterdeskriptor (Implementation Parameter Descriptor, IPD) bearbeitet.

Hinweise

SQL_DESC_AUTO_UNIQUE_VALUE wird für Tabellenwertparameter sowie für andere Features verwendet.

Attributname

Typ

Beschreibung

SQL_DESC_AUTO_UNIQUE_VALUE

SQLINTEGER

SQL_TRUE gibt an, dass es sich bei dieser Spalte um eine Identitätsspalte handelt.

SQL Server kann diese Information zur Leistungsoptimierung verwenden, Anwendungen müssen diesen Wert jedoch 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

Typ

Beschreibung

SQL_CA_SS_COLUMN_COMPUTED

SQLSMALLINT

SQL_TRUE gibt an, dass diese Spalte berechnet wird.

SQL Server kann diese Informationen zur Leistungsoptimierung verwenden, Anwendungen müssen diesen Wert jedoch 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 Standardeinstellung. 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. Es wird ein Diagnosedatensatz mit SQLSTATE=07S01 und der Meldung "Unzulässiges Verwenden von Standardparametern für Parameter <p>, Spalte <c>" generiert, wobei <p> für die Parameterordnungszahl und <c> für die Spaltenordnungszahl steht.

Siehe auch

Konzepte