Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Denna artikel diskuterar de senaste förändringarna i OLE DB Driver for SQL Server sedan SQL Server Native Client i SQL Server 2005 (9.x).
När du uppgraderar från Microsoft Data Access Components (MDAC) till OLE DB Driver for SQL Server kan du också se vissa beteendeförändringar. Mer information finns i Uppdatera ett program till OLE DB-drivrutin för SQL Server från MDAC.
SQL Server Native Client 9.0 levererades med SQL Server 2005 (9.x). SQL Server Native Client 10.0 levererades med SQL Server 2008 (10.0.x). SQL Server Native Client 10.5 levererades med SQL Server 2008 R2 (10.50.x). SQL Server Native Client 11.0 levererades med SQL Server 2012 (11.x) och SQL Server 2014 (12.x).
| Förändrat beteende i OLE DB Driver for SQL Server jämfört med SQL Server 2005 (9.x) Native Client | Description |
|---|---|
| OLE DB puddrar endast till den definierade skalan. | För konverteringar där konverterad data skickas till servern pudsar OLE DB Driver for SQL Server med nollor i data endast upp till maximal längd av datetime-värden. SQL Server Native Client 9.0 är utökad till 9 siffror. |
| Validera DBTYPE_DBTIMESTAMP för ICommandWithParameter::SetParameterInfo. | OLE DB Driver for SQL Server implementerar OLE DB-kravet på att bScale i ICommandWithParameter::SetParameterInfo ska sättas till bråkdels sekundprecision för DBTYPE_DBTIMESTAMP. |
| Den sp_columns lagrade proceduren returnerar nu "NEJ" istället för "NEJ" för kolumnen IS_NULLABLE. | I OLE DB Driver for SQL Server returnerar sp_columns lagrad procedur nu "NEJ" istället för "NEJ" för en IS_NULLABLE kolumn. |
| Annan felsignal returnerades när datumet var utanför intervallet. | För datumtidstypen returneras ett annat felnummer av OLE DB Driver for SQL Server för ett datum utanför intervallet än vad som returnerades i tidigare versioner. Specifikt returnerade SQL Server Native Client 9.0 22007 för alla år utanför intervallet i strängkonverteringar till datetime, och OLE DB Driver for SQL Server returnerar 22008 när datumet ligger inom intervallet som stöds av datetime2 men utanför intervallet som stöds av datetime eller smalldatetime. |
| Datumtidsvärdet förkortar bråkdelar av sekunder och rundar inte om avrundning ändrar dagen. | Före SQL Server Native Client 10.0 var klientbeteendet för datetime-värden som skickas till servern att avrunda dem till närmaste 1/300 sekund. I OLE DB Driver for SQL Server orsakar detta scenario en förkortning av bråkdelar av sekunder om avrundningen ändrar dagen. |
| Möjlig förkortning av sekunder för datumtidsvärdet . | En applikation byggd med OLE DB Driver for SQL Server som ansluter till en server från SQL Server 2005 kommer att förkorta sekunder och bråkdelar av sekunder för tidsdelen av data som skickas till servern om du binder till en datetime-kolumn med typidentifieraren DBTYPE_DBTIMESTAMP (OLE DB) eller SQL_TIMESTAMP (ODBC) och en skala på 0. Ett exempel: Indata: 1994-08-21 21:21:36.000 Infogade data: 1994-08-21 21:21:00.000 |
| OLE DB-datakonvertering från DBTYPE_DBTIME till DBTYPE_DATE kan inte längre få dagen att förändras. | Innan SQL Server Native Client 10.0, om tidsdelen av en DBTYPE_DATE var inom en halv sekund från midnatt, orsakade OLE DB-konverteringskoden att dagen ändrades. I OLE DB Driver for SQL Server ändras inte dagen (bråkdelar av sekunder avkortas och avrundas inte). |
| IBCPSession::BCColFmt-konverteringsändringar. | I OLE DB Driver for SQL Server, när du använder IBCPSession::BCOColFmt för att konvertera SQLDATETIME eller SQLDATETIME till en strängtyp, exporteras ett bråkdelsvärde. Till exempel, när man konverterade typen SQLDATETIME till typen SQLNVARCHARMAX, returnerades versioner före SQL Server Native Client 10.0 1989-02-01 00:00:00. OLE DB Driver for SQL Server returnerar 1989-02-01 00:00:00.0000000. |
| Anpassade applikationer som använder BCP API kan nu se en varning. | BCP-API:et kommer att generera ett varningsmeddelande om datalängden är större än den angivna längden för ett fält för alla typer. Tidigare gavs denna varning endast för karaktärstyper, men kommer inte att utfärdas för alla typer. |
| Att infoga en tom sträng i en sql_variant gräns som datum/tid-typ genererar ett fel. | I SQL Server Native Client 9.0 genererade det inget fel att infoga en tom sträng i en sql_variant gräns som datum/tid-typ. OLE DB Driver for SQL Server genererar korrekt ett fel i denna situation. |
| SQL Server kan ge olika resultat när en trigger körs. | Ändringar som infördes i SQL Server 2008 (10.0.x) kan göra att en applikation får andra resultat än en sats som orsakade att en trigger kördes när NOCOUNT OFF var aktiv. I denna situation kan din applikation generera ett fel. För att lösa detta fel, ställ NOCOUNT ON i triggern. |