Kaip importuoti duomen? i? programos Excel ? SQL serverio

Straipsni? vertimai Straipsni? vertimai
Straipsnio ID: 321686 - Per?i?r?ti ?iame straipsnyje minimus produktus.
I?pl?sti visus | Sutraukti visus

?iame puslapyje

Santrauka

?iame straipsnyje nuosekliai parodo, kaip importuoti duomenis i? Microsoft Excel darbalapius ? Microsoft SQL serverio duomen? bazi? naudojant ?vairius metodus.

Apra?ymas technika

M?gini? ?iame straipsnyje importuoti "Excel" duomenis naudojant:
  • SQL serverio duomen? transformavimo paslaug? (DTS)
  • Microsoft SQL Server 2005 integracijos paslaugas (SSIS)
  • Susieta SQL serveris Serveriai
  • SQL serveris paskirstyti klausim?
  • ActiveX duomen? objektai (ADO) ir Microsoft OLE DB teik?jas SQL Server
  • ADO ir Microsoft OLE DB teik?jas Jet 4.0

Reikalavimai

?iame s?ra?e bendrais bruo?ais rekomenduojama aparat?ros, programin?s ?rangos, tinklo infrastrukt?ros ir pakeitim? paketus, reikia:
  • Galima pavyzd?iui, Microsoft SQL Server 7.0 arba Microsoft SQL Server 2000 arba Microsoft SQL Server 2005
  • Microsoft Visual Basic 6.0 ADO m?gini?, naudokite Visual Basic
?io straipsnio dalys, manoma, kad esate susipa?in? su ?iomis temomis:
  • Duomen? transformavimo paslaug?
  • Susiet? serveriai ir paskirstyti u?klaus?
  • ADO pl?tros Visual Basic

M?giniai

Importo vs papildymo

M?ginio SQL sakiniais, kurie naudojami ?iame straipsnyje parodyti kurti lentel?s sudarymo u?klausas, kad Excel duomenis importuoti ? nauj? SQL serverio lentel? naudojant pasirinkti...?...I? sintaks?s. Galite konvertuoti ?iuos teiginius ? papildymo u?klausas naudodami INSERT INTO...PASIRINKITE...I? sintaks?s o j?s ir toliau nurodyti ?altinio ir paskirties objekt?, kaip parodyta ?i? kodo pavyzd?i?.

DTS arba SSIS

Nor?dami importuoti "Excel" duomenis ? SQL serverio lenteles galite naudoti SQL serverio duomen? transformavimo paslaugas (DTS) importavimo vedl? arba SQL serveryje importavimo ir eksportavimo vedl?. Kada j?s ?engia per vedl? ir pasirinkdami "Excel" ?altinio lenteli?, Atminkite, kad Excel objekt? pavadinimus, kuri yra su dolerio ?enklas ($) atstovauti darbalapi? (pvz., Lapas1$), ir kad paprastas objekt? pavadinimai be dolerio ?enklas yra Excel Pavadint? diapazon?.

Naudoti susiet?j? server?

Siekiant supaprastinti u?klausas, galite sukonfig?ruoti programos Excel darbaknyg? kaip susij?s serverio SQL Server.Nor?dami gauti papildomos informacijos, spustel?kite toliau straipsnio numer? per?i?r?kite straipsn? Microsoft ?ini? baz?je:
306397 HOWTO: Naudoti Excel su SQL serveriu susijusios serveriai ir paskirstyti u?klaus?
?? kod? importuoja duomenis i? "Excel" susij?s serverio "EXCELLINK" ? nauj? SQL serverio lentel? pavadintas XLImport1 darbalap? klientai:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
				
Taip pat galite vykdyti u?klaus? prie? ?altinis passthrough b?du naudojant ATIDARYTI_U?KLAUS? taip:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,
    'SELECT * FROM [Customers$]')
				

Naudoti paskirstyti u?klaus?

Jei nenorite sukonfig?ruoti nuolatinis ry?ys su programos Excel darbaknyg? kaip susiet?j? server?, galite importuoti duomenis konkre?iam tikslui naudojant ? OPENDATASOURCE arba OPENROWSET funkcija. ?ie kodo pavyzd?i? taip pat importuoti duomenis i? Excel Klientai darbalap? ? nauj? SQL serverio lenteles:
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$]')
				

Naudokite ADO ir SQLOLEDB

Kai j?s prisijung?te prie SQL serverio taikomojoje programoje, ADO naudojant Microsoft OLE DB u? SQL serverio (SQLOLEDB), galite naudoti t? pat? "u?klausoje" sintaks? nuo to Naudojant paskirstyti u?klaus? skyriuje importuoti "Excel" duomenis ? SQL server?.

?is Visual Basic 6.0 kodo pavyzdys reikalauja, kad prid?ti projekto nuorod? ? ActiveX Data Objects (ADO). ?is kodo pavyzdys taip pat rodo, kaip naudotis OPENDATASOURCE ir OPENROWSET SQLOLEDB ry??.
    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
				

Naudokite ADO ir Jet teik?jas

M?ginio ankstesniame sekcijoje naudoja ADO SQLOLEDB teik?jo prisijungti prie savo "Excel" ? SQL importo paskirties. Taip pat galite OLE DB teik?jas Jet 4.0 prisijungti prie Excel ?altinio.

Jet duomen? baz?s variklis galite nurodyti i?or?s duomen? bazi? SQL sakiniuose naudojant speciali? sintaks?, kuris trimis skirtingais formatais:
  • [Vis? keli? ? Microsoft Access duomen? baz?s].[Lentel?s pavadinimas]
  • [ISAM pavadinimas;ISAM jungimosi eilut?].[Lentel?s pavadinimas]
  • [ODBC;ODBC jungimosi eilut?].[Lentel?s pavadinimas]
?iame skyriuje naudoja tre?i?j? forma, kad ODBC ry?io su paskirties SQL serverio duomen? baz?s. J?s galite naudoti, ODBC duomen? ?altinio pavadinim? (DSN) arba DSN-ma?iau jungimosi eilut?:
DSN:
    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

DSN-less:
   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;
       UID=<user>;PWD=<password>]
				
?is Visual Basic 6.0 kodo pavyzdys reikalauja, kad prid?ti projekto nuoroda ? triuk?mo. ?is kodo pavyzdys rodo, kaip importuoti "Excel" duomenis ? SQL server? ADO ry?? naudojant Jet 4.0 teik?jas.
    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
				
Taip pat galite naudoti ?i? sintaks?, kurie Jet teik?jas palaiko, importuoti "Excel" duomenis ? kit? Microsoft Access duomen? bazes, indeksuota nuoseklios kreipties metodu (ISAM) ("desktop") duomen? bazi? arba ODBC duomen? baz?s.

Trik?i? ?alinimas

  • Atminkite, kad programa Excel objekt? pavadinimus, kuri yra su dolerio ?enklas ($) sudaro darbalapi? (pvz., Lapas1$) ir kad paprastas objekt? pavadinimus sudaro Excel Pavadint? diapazon?.
  • Kai kuriais atvejais, ypa? kai paskiriate Excel ?altinio duomenis naudojant lentel?s pavadinim? vietoj atrankos u?klaus?, paskirties SQL serverio lentel?s stulpeliai pertvarkomi pagal ab?c?l?.Papildomos informacijos apie ?i? problem? su Jet teik?ju, spustel?kite toliau straipsnio numer? per?i?r?kite straipsn? Microsoft ?ini? baz?je:
    299484 PRB: Stulpeliai yra r??iuojami pagal ab?c?l? naudodami ADOX gauti prieig? lentel?s skiltys
  • Kai Jet teik?jas nustato, kad Excel stulpelyje yra mi?raus teksto ir skaitini? duomen?, Jet teik?jas pasirenka "dauguma" duomen? tip? ir pateikia nesuderinto reik?mes kaip neapibr??tas reik?mes.Papildomos informacijos apie tai, kaip i?spr?sti ?i? problem?, spustel?kite toliau straipsnio numer? per?i?r?kite straipsn? Microsoft ?ini? baz?je:
    194124 PRB: Excel reik?m?s, gr??intos kaip NULL naudojant DAO OpenRecordset

Nuorodos

Papildomos informacijos apie tai, kaip naudoti Excel kaip duomen? ?altin?, spustel?kite toliau straipsnio numer? per?i?r?kite straipsn? Microsoft ?ini? baz?je:
257819 HOWTO: Naudokite ADO su Excel duomenimis i? Visual Basic arba VBA
Papildomos informacijos apie tai, kaip perkelti duomenis ? Excel, spustel?kite ?emiau straipsni? numer? per?i?r?kite straipsnius Microsoft ?ini? baz?je:
295646 HOWTO: Perkelti duomenis i? ADO duomen? ?altinio Excel su triuk?mo
247412 INFO: Metodai perkeliant duomenis ? program? Excel i? Visual Basic
246335 HOWTO: Perkelti duomenis i? ADO ?ra?? rinkinys ? Excel su automatika
319951 KAIP: Perkelti duomenis ? Excel naudojant SQL serverio duomen? transformavimo paslaug?
306125 KAIP: Importuoti duomenis i? SQL serverio ? program? Microsoft Excel

Savyb?s

Straipsnio ID: 321686 - Paskutin? per?i?ra: 2013 m. baland?io 25 d. - Per?i?ra: 2.0
Taikoma:
  • 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 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
Rakta?od?iai: 
kbhowtomaster kbjet kbmt KB321686 KbMtlt
Atliktas automatinis vertimas
SVARBU: ?is straipsnis i?verstas naudojant ?Microsoft? ma?ininio vertimo programin? ?rang? ir gali b?ti pataisytas naudojant ?Community Translation Framework? (CTF) technologij?. ?Microsoft? si?lo ma?inos i?verstus, bendruomen?s suredaguotus ir ?mogaus i?verstus straipsnius siekdama daugeliu kalb? suteikti prieig? prie vis? savo ?ini? baz?s straipsni?. Ma?inos i?verstuose ir v?liau paredaguotuose straipsniuose gali b?ti ?odyno, sintaks?s ir / arba gramatikos klaid?. ?Microsoft? neatsako u? jokius netikslumus, klaidas arba ?al?, klient? patirt? d?l neteisingo turinio vertimo arba naudojimosi juo. Daugiau apie CTF ?r. http://support.microsoft.com/gp/machine-translation-corrections.
Spustel?kite ?ia, nor?dami pamatyti ?io straipsnio versij? angl? kalba: 321686

Pateikti atsiliepim?

 

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