Felsöka OLE DB-providerfel för länkade servrar

Ursprungligt KB-nummer: 2555855

Summary

Den här artikeln hjälper dig att lösa fel med OLE DB-providern som uppstår när du kör T-SQL-frågor via länkade servrar eller ad hoc-frågor med hjälp av OPENROWSET eller OPENDATASOURCE i Microsoft SQL Server. Dessa fel indikerar vanligtvis att OLE DB-providern inte är installerad, inte är registrerad eller inte matchar SQL Server-arkitekturen.

Symptoms

När du kör T-SQL-frågor som använder länkade servrar eller ad hoc-frågor (med hjälp OPENROWSET av eller OPENDATASOURCE) kan du få något av följande felmeddelanden:

OLE DB-providern "<ProviderName>" har inte registrerats. (Microsoft SQL Server, Fel: 7403)

Det går inte att skapa en instans av OLE DB-providern "<ProviderName>" för den länkade servern "<LinkedServerName>". (Microsoft SQL Server, Fel: 7302)

Dessa fel kan också inträffa efter att du:

  • Migrera SQL Server från en dator till en annan.
  • Återställ databasen master från en annan server.

Orsak

SQL Server kan inte initiera den angivna OLE DB-providern av någon av följande orsaker:

  • OLE DB-providern eller drivrutinen är inte installerad på servern.
  • Den installerade providern matchar inte SQL Server bitness (x86 jämfört med x64).
  • OLE DB-providern är installerad men inte korrekt registrerad.

Anmärkning

När du skapar en länkad server med hjälp av sp_addlinkedserver rapporterar SQL Server inte omedelbart fel som är relaterade till providertillgänglighet. Dessa fel visas bara när du kör en fråga som använder den länkade servern.

Lösning

Lös problemet genom att följa stegen i varje avsnitt i den angivna ordningen.

Kontrollera de installerade OLE DB-leverantörerna eller drivrutinerna

Kontrollera vilka OLE DB-leverantörer eller drivrutiner som är registrerade på din SQL Server-instans med någon av följande metoder:

  • I SQL Server Management Studio (SSMS) expandera Serverobjekt>Länkade servrar>Providers för att se listan över registrerade OLE DB-leverantörer eller drivrutiner.

  • Kör följande fråga för att se alla definierade länkade servrar och deras associerade leverantörer eller drivrutiner:

    SELECT * FROM sys.servers;
    

    Mer information om de kolumner som returneras finns i sys.servers (Transact-SQL).

Verifiera leverantörens eller drivrutinens installation

Kontrollera att rätt OLE DB-provider är installerad och matchar SQL Server arkitektur:

  1. Kontrollera om providern som krävs av den länkade servern finns i providerlistan från Verifiera de installerade OLE DB-leverantörerna eller drivrutinerna.

  2. Om providern saknas installerar du den:

    • För Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL): Ladda ned den senaste versionen från nedladdningssidan Microsoft OLE DB Driver.
    • För tredjepartsleverantörer eller drivrutiner: Kontakta leverantören för att få rätt installationsprogram.
  3. Kontrollera att providerversionen matchar SQL Server arkitekturen. Installera till exempel 64-bitarsprovidern för en 64-bitars SQL Server-instans.

Fler metoder för att verifiera providern finns i installationskontrollen för OLE DB-drivrutinen.

Registrera OLE DB-providern

Om providerns DLL finns på disken men inte är registrerad installerar du om providern eller drivrutinen med hjälp av stegen i Verifiera providern eller drivrutinsinstallationen. Ominstallationen säkerställer att DLL-filen är korrekt registrerad.

Verifiera provideranslutningen

Använd en UDL-fil (Universal Data Link) för att verifiera att OLE DB-providern kan ansluta till måldatakällan:

  1. Skapa en ny .udl-testfil .
  2. Dubbelklicka på .udl-filen för att öppna dialogrutan Egenskaper för datalänk .
  3. Välj fliken Provider och välj OLE DB-providern i listan.
  4. På fliken Anslutning anger du servernamnet och autentiseringsinformationen.
  5. Välj Testa anslutning för att verifiera anslutningen.

Detaljerade steg finns i Test OLE DB-anslutning till SQL Server med hjälp av en UDL-fil.

Ansvarsfriskrivning för information från tredje part

De produkter från tredje part som beskrivs i den här artikeln tillverkas av företag som är oberoende av Microsoft. Microsoft ger ingen garanti, underförstådd eller på annat sätt, om dessa produkters prestanda eller tillförlitlighet.