Kako uvoziti podatke iz Excela s strežnikom SQL

Prevodi člankov Prevodi člankov
ID članka: 321686 - Oglejte si izdelke, na katere se nanaša ta članek.
Razširi vse | Zmanjšaj

Na tej strani

Povzetek

Ta članek po korakih prikazuje, kako uvoziti iz Microsoft Excelovih delovnih listov v zbirkah podatkov Microsoft SQL Serverja z uporabo različnih metod.

Opis tehnike

Vzorce v ta članek uvažanje Excelovih podatkov z uporabo:
  • SQL Server podatkovne preoblikovanje storitve (DTS)
  • Microsoft SQL Server 2005 integracija storitve (SSIS)
  • Strežniki SQL strežnik, povezan
  • Distribuiranimi poizvedbami SQL Serverja
  • ActiveX podatkovni objekti (ADO) in ponudnika Microsoft OLE DB za SQL Server
  • ADO in Microsoft OLE DB ponudnik za Jet 4.0

Zahteve

Spodnji seznam opisuje priporočene strojne opreme, programske opreme, omrežne infrastrukture in servisne pakete, ki so potrebne:
  • Na voljo primerek Microsoft SQL Server 7.0 ali Microsoft SQL Server 2000 ali Microsoft SQL Server 2005
  • Microsoft Visual Basic 6.0 za vzorce ADO, ki uporabljajo Visual Basic
Deli tega članka predpostavimo, da ste seznanjeni z te teme:
  • Storitve pretvorbe podatkov
  • Povezani strežniki in distribuiranimi poizvedbami
  • ADO razvoj v Visual Basic

Vzorci

Uvoz vs Append

Vzorec izjave SQL, ki se uporabljajo v tem članku dokazati Create Table poizvedbe, ki uvozite Excelove podatke v novo tabelo SQL Serverja z uporabo izberite...V...OD sintakse. Z uporabo INSERT INTO lahko pretvorite te izjave poizvedbah za dodajanje...IZBERITE...OD sintakse, medtem ko še naprej referenčna vira in cilja predmete, kot je prikazano v teh vzorci kode.

Uporabo DTS ali SSIS

Uporabite čarovnika za uvoz SQL Server podatkov preoblikovanje storitev (DTS) ali SQL Server uvoz in izvoz čarovnik za uvažanje Excelovih podatkov v SQL Serverjevih tabelah. Ko so stopam skozi čarovnika in izberete Excel izvorne tabele, ne pozabite, da Excel imena predmetov, ki se pripnejo znak za dolar ($) predstavljajo delovne liste (na primer List1$), in da je navaden predmet, ki ga je mogoče zaščititi imena brez znak za dolar predstavljajo Excel poimenovanih obsegov.

Uporabite povezani strežnik

Poenostaviti poizvedbe, lahko konfigurirate Excelov delovni zvezek kot povezan strežnik SQL Server.Za dodatne informacije, kliknite spodnjo številko članka iz Microsoftove zbirke znanja:
306397 HOWTO: Uporaba Excela s strežnikom SQL povezanimi strežniki in distribuiranimi poizvedbami
Naslednjo kodo Uvozi podatke iz stranke lista na Excelovem povezanem strežniku "EXCELLINK" v novo SQL Serverjevo tabelo z imenom XLImport1:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
				
Izvedete lahko tudi poizvedbo proti viru passthrough način z uporabo OPENQUERY, kot sledi:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,
    'SELECT * FROM [Customers$]')
				

Uporabite distribuiranimi poizvedbami

Če želite konfigurirati trajno povezavo Excelov delovni zvezek kot povezan strežnik, lahko uvozite podatke za posebne namene z uporabo na OPENDATASOURCE ali OPENROWSET funkcijo. Naslednji vzorci kode tudi uvozite podatke z delovnega lista Excel stranke v nove tabele SQL Serverja:
SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]

SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])

SELECT * INTO XLImport5 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT * FROM [Customers$]')
				

Uporabiti ADO in SQLOLEDB

Ko ste povezani s strežnikom SQL v ADO aplikacija z uporabo Microsoft OLE DB za SQL Server (SQLOLEDB), uporabite enako sintakso "distribuirane poizvedbe" iz na Z distribuiranimi poizvedbami Oddelek za uvažanje Excelovih podatkov v strežnik SQL.

Spodnji primer kode Visual Basic 6.0 zahteva, da dodate projekt sklic ActiveX Data Objects (ADO). Vzorec kode prikazuje tudi, kako uporabljati OPENDATASOURCE in OPENROWSET prek povezave SQLOLEDB.
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=SQLOLEDB;Data Source=<server>;" & _
        "Initial Catalog=<database>;User ID=<user>;Password=<password>"

    'Import by using OPENDATASOURCE.
    strSQL = "SELECT * INTO XLImport6 FROM " & _
        "OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', " & _
        "'Data Source=C:\test\xltest.xls;" & _
        "Extended Properties=Excel 8.0')...[Customers$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    'Import by using OPENROWSET and object name.
    strSQL = "SELECT * INTO XLImport7 FROM " & _
        "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
        "'Excel 8.0;Database=C:\test\xltest.xls', " & _
        "[Customers$])"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    'Import by using OPENROWSET and SELECT query.
    strSQL = "SELECT * INTO XLImport8 FROM " & _
        "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
        "'Excel 8.0;Database=C:\test\xltest.xls', " & _
        "'SELECT * FROM [Customers$]')"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    cn.Close
    Set cn = Nothing
				

Uporabiti ADO in ponudnika za Jet

Vzorec v prejšnjem odseku uporablja tehnologijo ADO z SQLOLEDB ponudnika povezati destinacijo uvoz Excel-SQL. OLE DB ponudnik za Jet 4.0 lahko tudi vzpostavite povezavo z virom Excel.

Jet mehanizem zbirke podatkov se lahko sklicujejo na zunanje zbirke podatkov v SQL izjavah z uporabo posebne sintakse, ki ima tri različne oblike:
  • [Poln steza v Microsoft Accessovi zbirki podatkov].[ime tabele]
  • [ISAM ime;ISAM povezovalni niz].[ime tabele]
  • [ODBC;Niz za povezovanje ODBC].[ime tabele]
Ta oddelek uporablja tehnologijo tretja oblika narediti povezavo z ODBC za ciljno zbirka podatkov v skupni rabi SQL Serverja. Lahko uporabite za vir podatkov ODBC ime (DSN) ali DSN-manj povezovalnega niza:
DSN:
    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

DSN-less:
   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;
       UID=<user>;PWD=<password>]
				
Spodnji primer kode Visual Basic 6.0 zahteva, da dodate projekt sklic na ADO. Vzorec kode prikazuje, kako za uvažanje Excelovih podatkov v SQL Server prek ADO povezave z uporabo Jet 4.0 ponudnik.
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\test\xltestt.xls;" & _
        "Extended Properties=Excel 8.0"
    
    'Import by using Jet Provider.
    strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _
        "Server=<server>;Database=<database>;" & _
        "UID=<user>;PWD=<password>].XLImport9 " & _
        "FROM [Customers$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff
        
    cn.Close
    Set cn = Nothing
				
Uporabite lahko tudi to sintakso, ki je ponudnik Jet podpira, Excel podatke uvoziti v drugih Microsoft Accessovih zbirk podatkov, indeksiranih zaporedni dostop metoda (ISAM) ("desktop") zbirk podatkov ali zbirke podatkov ODBC.

Odpravljanje težav

  • Ne pozabite, da Excel imena predmetov, ki se pripnejo znak za dolar ($) predstavljajo delovne liste (na primer List1$) in da navaden predmet, ki ga je mogoče zaščititi imena predstavljajo Excel poimenovanih obsegov.
  • V nekaterih okoliščinah, zlasti, ko Priporočil določite vir podatkov Excel z using ime tabele namesto poizvedbo za izbiranje, stolpcev v ciljni strežnik SQL preurediti po abecednem vrstnem redu.Za dodatne informacije o tej težavi z Jet Provider, kliknite spodnjo številko članka iz Microsoftove zbirke znanja:
    299484 PRB: Stolpci so razvrščeni po abecedi ko uporabljate ADOX-a pridobiti stolpce Accessovo tabelo
  • Ko ponudnik Jet določa, da Excel stolpec vsebuje mešano besedilo in številske podatke, Jet Provider izbral splošna vrsta podatkov, "večina" in vrne neusklajene vrednosti kot ničelne vrednosti.Za dodatne informacije o tej težavi, kliknite spodnjo številko članka iz Microsoftove zbirke znanja:
    194124 PRB: Excel vrednosti vrnil kot nič, z uporabo DAO OpenRecordset in tako

Sklici

Za dodatne informacije o uporabi Excel kot vir podatkov, kliknite spodnjo številko članka iz Microsoftove zbirke znanja:
257819 HOWTO: Uporaba predmeta ADO z Excelovimi podatki iz programa Visual Basic ali VBA
Če želite več informacij o prenosu podatkov v Excel, kliknite spodnje številke člankov iz Microsoftove zbirke znanja:
295646 HOWTO: Prenos podatkov iz ADO vir podatkov za Excel z ADO
247412 INFO: Metode za prenos podatkov v Excel iz Visual Basic
246335 HOWTO: Prenos podatkov iz ADO Recordset v Excel z avtomatizacijo
319951 KAKO: Prenos podatkov v Excel z uporabo storitve za preoblikovanje podatkov strežnika SQL
306125 KAKO: Uvoz podatkov iz strežnika SQL v Microsoft Excel

Lastnosti

ID članka: 321686 - Zadnji pregled: 20. november 2013 - Revizija: 2.0
Velja za:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7,0 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
Ključne besede: 
kbhowtomaster kbjet kbmt KB321686 KbMtsl

Pošlji povratne informacije

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com