Freigeben über


Metadaten – Datums- und Uhrzeit- und Schema-Rowsets in SQL Server Native Client

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Dieses Thema enthält Informationen über das COLUMNS-Rowset und das PROCEDURE_PARAMETERS-Rowset. Diese Informationen beziehen sich auf die OLE DB-Verbesserungen in SQL Server 2008 (10.0.x) in Bezug auf Datum und Uhrzeit.

COLUMNS-Rowset

Die folgenden Spaltenwerte werden für date/time-Typen zurückgegeben:

Spaltentyp DATA_TYPE COLUMN_FLAGS, DBCOLUMFLAGS_SS_ISVARIABLESCALE DATETIME_PRECISION
date DBTYPE_DBDATE Löschen 0
time DBTYPE_DBTIME2 Set 0..7
smalldatetime DBTYPE_DBTIMESTAMP Löschen 0
datetime DBTYPE_DBTIMESTAMP Löschen 3
datetime2 DBTYPE_DBTIMESTAMP Set 0..7
datetimeoffset DBTYPE_DBTIMESTAMPOFFSET Set 0..7

In COLUMN_FLAGS hat DBCOLUMNFLAGS_ISFIXEDLENGTH für Datum-/Uhrzeittypen stets den Wert TRUE, und die folgenden Flags haben immer den Wert FALSE:

  • DBCOLUMNFLAGS_CACHEDEFERRED

  • DBCOLUMNFLAGS_ISBOOKMARK

  • DBCOLUMNFLAGS_ISCHAPTER

  • DBCOLUMNFLAGS_ISLONG

  • DBCOLUMNFLAGS_ISROWID

  • DBCOLUMNFLAGS_ISROWVER

  • DBCOLUMNFLAGS_MAYDEFER

Die übrigen Flags (DBCOLUMNFLAGS_ISNULLABLE, DBCOLUMNFLAGS_MAYBENULL, DBCOLUMNFLAGS_WRITE und DBCOLUMNFLAGS_WRITEUNKNOWN) können festgelegt werden. Dies hängt von der Definition der Spalte ab.

Das neue DBCOLUMNFLAGS_SS_ISVARIABLESCALE-Flag wird in COLUMN_FLAGS bereitgestellt, damit eine Anwendung den Servertyp der Spalten bestimmen kann, wobei DATA_TYPE = DBTYPE_DBTIMESTAMP ist. DATETIME_PRECISION muss ebenfalls verwendet werden, um den Servertyp zu identifizieren.

DBCOLUMNFLAGS_SS_ISVARIABLESCALE ist nur gültig, wenn eine Verbindung mit einem SQL Server 2008 (10.0.x) oder höher hergestellt wird. DBCOLUMNFLAGS_SS_ISFIXEDSCALE ist nicht definiert, wenn eine Verbindung mit einem Downlevelserver besteht.

PROCEDURE_PARAMETERS-Rowset

DATA_TYPE enthält die gleichen Werte wie das COLUMNS-Schemarowset, und TYPE_NAME enthält den Servertyp.

Die neue Spalte SS_DATETIME_PRECISION wurde hinzugefügt, um die Genauigkeit des Typs wie in der DATETIME_PRECISION-Spalte zurückzugeben, ähnlich wie beim COLUMNS-Rowset.

PROVIDER_TYPES-Rowset

Die folgenden Zeilen werden für date/time-Typen zurückgegeben:

Typ >

Column
date time smalldatetime datetime datetime2 datetimeoffset
TYPE_NAME date time smalldatetime datetime datetime2 datetimeoffset
DATA_TYPE DBTYPE_DBDATE DBTYPE_DBTIME2 DBTYPE_DBTIMESTAMP DBTYPE_DBTIMESTAMP DBTYPE_DBTIMESTAMP DBTYPE_DBTIMESTAMPOFFSET
COLUMN_SIZE 10 16 16 23 27 34
LITERAL_PREFIX ' ' ' ' ' '
LITERAL_SUFFIX ' ' ' ' ' '
CREATE_PARAMS NULL Skalierung NULL NULL Skalierung Skalierung
IS_NULLABLE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE
CASE_SENSITIVE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE
SEARCHABLE DB_SEARCHABLE DB_SEARCHABLE DB_SEARCHABLE DB_SEARCHABLE DB_SEARCHABLE DB_SEARCHABLE
UNSIGNED_ATTRIBUTE NULL NULL NULL NULL NULL NULL
FIXED_PREC_SCALE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE
AUTO_UNIQUE_VALUE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE
LOCAL_TYPE_NAME date time smalldatetime datetime datetime2 datetimeoffset
MINIMUM_SCALE NULL 0 NULL NULL 0 0
MAXIMUM_SCALE NULL 7 NULL NULL 7 7
GUID NULL NULL NULL NULL NULL NULL
TYPELIB NULL NULL NULL NULL NULL NULL
VERSION NULL NULL NULL NULL NULL NULL
IS_LONG VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE VARIANT_FALSE
BEST_MATCH VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE, außer wenn eine der folgenden Aussagen zutrifft:

Der Client ist mit einem Downlevelserver verbunden.

Die Verbindungseigenschaft für die Datentypkompatibilität gibt einen Kompatibilitätsgrad von 80 an.
VARIANT_TRUE, außer wenn eine der folgenden Aussagen zutrifft:

Der Client ist mit einem Downlevelserver verbunden.

Die Verbindungseigenschaft für die Datentypkompatibilität gibt einen Kompatibilitätsgrad von 80 an.
VARIANT_TRUE
IS_FIXEDLENGTH VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE VARIANT_TRUE

OLE DB definiert nur MINIMUM_SCALE und MAXIMUM_SCALE für numerische und dezimale Typen, sodass sql Server Native Client diese Spalten für Uhrzeit, Datetime2 und datetimeoffset nicht standardmäßig verwendet.

Weitere Informationen

Metadaten (OLE DB)