Τρόπος εισαγωγής δεδομένων από το Excel με SQL Server

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 321686 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο βήμα προς βήμα περιγράφει τον τρόπο εισαγωγής δεδομένων από φύλλα εργασίας του Microsoft Excel σε βάσεις δεδομένων του Microsoft SQL Server, χρησιμοποιώντας μια ποικιλία μεθόδων.

Περιγραφή για την τεχνική

Τα δείγματα σε αυτό το άρθρο εισαγωγή δεδομένων του Excel, χρησιμοποιώντας:
  • Υπηρεσίες μετασχηματισμού δεδομένων SQL Server (DTS)
  • Microsoft SQL Server 2005 ενοποίησης υπηρεσιών (SSIS)
  • SQL Server συνδεδεμένους διακομιστές
  • SQL Server κατανεμημένων ερωτημάτων
  • Αντικείμενα δεδομένων ActiveX (ADO) και η υπηρεσία παροχής Microsoft OLE DB για SQL Server
  • Το ADO και την υπηρεσία παροχής Microsoft OLE DB για Jet 4.0

Απαιτήσεις

Η ακόλουθη λίστα περιγράφει τα υλικού που συνιστώνται, λογισμικό, υποδομή δικτύου και τα service pack που απαιτούνται:
  • Διαθέσιμες παρουσία του Microsoft SQL Server 7.0 ή Microsoft SQL Server 2000 ή του Microsoft SQL Server 2005
  • Microsoft Visual Basic 6.0, για τα δείγματα ADO που χρησιμοποιούν την Visual Basic
Τμήματα αυτού του άρθρου προϋποθέτουν ότι είστε εξοικειωμένοι με τα ακόλουθα θέματα:
  • Υπηρεσίες μετασχηματισμού δεδομένων
  • Συνδεδεμένους διακομιστές και κατανεμημένα ερωτήματα
  • Ανάπτυξη του ADO στη Visual Basic

Δείγματα

Εισαγωγή και προσάρτηση

Τα παραδείγματα προτάσεων SQL που χρησιμοποιούνται σε αυτό το άρθρο παρουσιάζουν ερωτήματα δημιουργίας πίνακα που εισάγουν δεδομένα του Excel σε ένα νέο πίνακα του SQL Server, χρησιμοποιώντας την ΕΠΙΛΟΓΉ...ΣΕ...ΣΎΝΤΑΞΗ. Μπορείτε να μετατρέψετε αυτές τις προτάσεις σε ερωτήματα προσάρτησης, χρησιμοποιώντας INSERT INTO...ΕΠΙΛΟΓΉ...ΣΎΝΤΑΞΗ, ενώ εξακολουθούν να αναφέρουν τα αντικείμενα προέλευσης και προορισμού, όπως φαίνεται σε αυτά τα δείγματα κώδικα.

Χρήση DTS ή SSIS

Μπορείτε να χρησιμοποιήσετε τον Οδηγό εισαγωγής SQL Server υπηρεσιών μετασχηματισμού δεδομένων (DTS) ή την εισαγωγή του SQL Server και οι "Οδηγό εξαγωγής" για την εισαγωγή δεδομένων του Excel σε πίνακες του SQL Server. Όταν προχωράτε στον οδηγό και επιλέγετε τους πίνακες προέλευσης του Excel, να θυμάστε ότι τα ονόματα αντικειμένων Excel που προσαρτώνται με ένα σύμβολο δολαρίου ($) αντιπροσωπεύουν φύλλα εργασίας (για παράδειγμα, $ Φύλλο1) και ότι τα ονόματα απλών αντικειμένων χωρίς το σύμβολο του δολαρίου αντιπροσωπεύουν Excel συγκεκριμένες περιοχές.

Χρησιμοποιήστε ένα συνδεδεμένο διακομιστή

Για να απλοποιήσετε ερωτήματα, μπορείτε να ρυθμίσετε ένα βιβλίο εργασίας του Excel ως ένα συνδεδεμένο διακομιστή στον SQL Server.Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
306397 ΔΙΑΔΙΚΑΣΙΕΣ: Χρήση Excel με SQL Server συνδεδεμένους διακομιστές και κατανεμημένων ερωτημάτων
Ο ακόλουθος κώδικας εισάγει τα δεδομένα από το φύλλο εργασίας πελάτες στο Excel συνδεδεμένο διακομιστή "EXCELLINK" σε ένα νέο πίνακα του SQL Server με το όνομα XLImport1:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
				
Μπορείτε επίσης να εκτελέσετε το ερώτημα σε σχέση με την προέλευση με ένα τρόπο διέλευσης χρησιμοποιώντας OPENQUERY ως εξής:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,
    'SELECT * FROM [Customers$]')
				

Χρήση κατανεμημένων ερωτημάτων

Εάν δεν θέλετε να ρυθμίσετε μια μόνιμη σύνδεση στο βιβλίο εργασίας του Excel ως ένας συνδεδεμένος διακομιστής, μπορείτε να εισαγάγετε τα δεδομένα για ένα συγκεκριμένο σκοπό, χρησιμοποιώντας το OPENDATASOURCE ή τη συνάρτηση OPENROWSET. Τα ακόλουθα δείγματα κώδικα επίσης εισάγουν τα δεδομένα από το φύλλο εργασίας του Excel πελάτες στους νέους πίνακες του SQL Server:
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$]')
				

Χρησιμοποιήστε το ADO και η SQLOLEDB

Όταν είστε συνδεδεμένοι με τον SQL Server σε μια εφαρμογή του ADO με χρήση του Microsoft OLE DB για SQL Server (SQLOLEDB), μπορείτε να χρησιμοποιήσετε την ίδια σύνταξη "κατανεμημένο ερωτήματος" από την Χρήση κατανεμημένων ερωτημάτων ενότητα για την εισαγωγή δεδομένων του Excel στο SQL Server.

Το ακόλουθο δείγμα κώδικα Visual Basic 6.0 απαιτεί να προσθέσετε μια αναφορά έργου σε ActiveX Data Objects (ADO). Αυτό το δείγμα κώδικα δείχνει επίσης τον τρόπο χρήσης OPENDATASOURCE και OPENROWSET μέσω μιας σύνδεσης 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
				

Χρησιμοποιήστε το ADO και την υπηρεσία παροχής Jet

Το δείγμα στην προηγούμενη ενότητα χρησιμοποιεί ADO με την υπηρεσία παροχής SQLOLEDB για να συνδεθεί με τον προορισμό της εισαγωγής του Excel προς τον SQL σας. Μπορείτε επίσης να χρησιμοποιήσετε την υπηρεσία παροχής OLE DB για Jet 4.0 για να συνδεθείτε με το αρχείο προέλευσης του Excel.

Ο μηχανισμός βάσης δεδομένων Jet μπορεί να παραπέμπει σε εξωτερικές βάσεις δεδομένων σε SQL προτάσεις χρησιμοποιώντας μια ειδική σύνταξη που διαθέτει τρεις διαφορετικές μορφές:
  • [Πλήρης διαδρομή για τη βάση δεδομένων της Microsoft Access].[Όνομα πίνακα]
  • [Όνομα ISAM;ISAM συμβολοσειρά σύνδεσης].[Όνομα πίνακα]
  • [ODBC;Συμβολοσειρά σύνδεσης ODBC].[Όνομα πίνακα]
Η ενότητα αυτή χρησιμοποιεί την τρίτη μορφή για να δημιουργήσει μια σύνδεση ODBC με τη βάση δεδομένων του SQL Server προορισμού. Μπορείτε να χρησιμοποιήσετε ένα όνομα προέλευσης δεδομένων (DSN) ODBC ή μια ακολουθία χαρακτήρων σύνδεσης χωρίς DSN:
DSN:
    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

DSN-less:
   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;
       UID=<user>;PWD=<password>]
				
Το ακόλουθο δείγμα κώδικα Visual Basic 6.0 απαιτεί ότι μπορείτε να προσθέσετε μια αναφορά έργου στο ADO. Αυτό το δείγμα κώδικα παρουσιάζει τον τρόπο εισαγωγής δεδομένων του Excel στον SQL Server πάνω από μια σύνδεση ADO, χρησιμοποιώντας την υπηρεσία παροχής του Jet 4.0.
    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
				
Μπορείτε επίσης να χρησιμοποιήσετε αυτήν τη σύνταξη, που υποστηρίζει η υπηρεσία παροχής Jet, για την εισαγωγή δεδομένων του Excel σε άλλες βάσεις δεδομένων της Microsoft Access, ("επιφάνεια εργασίας") βάσεις δεδομένων με ευρετήριο έξοδος method (ISAM) ή βάσεις δεδομένων ODBC.

Αντιμετώπιση προβλημάτων

  • Να θυμάστε ότι τα ονόματα αντικειμένων Excel που προσαρτώνται με ένα σύμβολο δολαρίου ($) αντιπροσωπεύουν φύλλα εργασίας (για παράδειγμα, $ Φύλλο1) και ότι τα ονόματα απλών αντικειμένων αντιπροσωπεύουν Excel συγκεκριμένες περιοχές.
  • Σε ορισμένες περιπτώσεις, ειδικά όταν καθορίζετε τα δεδομένα προέλευσης του Excel, χρησιμοποιώντας το όνομα του πίνακα αντί για ερώτημα ΕΠΙΛΟΓΉΣ, οι στήλες στον SQL Server πίνακα προορισμού αναδιατάσσονται σε αλφαβητική σειρά.Για πρόσθετες πληροφορίες σχετικά με αυτό το πρόβλημα με την υπηρεσία παροχής Jet, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
    299484 PRB: Στήλες ταξινομούνται με αλφαβητική σειρά κατά τη χρήση του ADOX για ανάκτηση στηλών από πίνακα της Access
  • Όταν η υπηρεσία παροχής Jet προσδιορίζει ότι μια στήλη του Excel περιέχει μεικτό κείμενο και αριθμητικά δεδομένα, η υπηρεσία παροχής Jet επιλέγει τον τύπο δεδομένων "πλειοψηφία" και επιστρέφει τιμές που δεν ταιριάζουν ως NULLs.Για πρόσθετες πληροφορίες σχετικά με τον τρόπο για να επιλύσετε αυτό το ζήτημα, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
    194124 PRB: Excel τιμές επιστρέφονται ως NULL χρησιμοποιώντας DAO OpenRecordset

Αναφορές

Για πρόσθετες πληροφορίες σχετικά με τη χρήση του Excel ως αρχείο προέλευσης δεδομένων, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
257819 ΔΙΑΔΙΚΑΣΙΕΣ: Χρήση ADO με δεδομένα του Excel από την Visual Basic ή της VBA
Για πρόσθετες πληροφορίες σχετικά με τον τρόπο μεταφοράς δεδομένων στο Excel, κάντε κλικ στους αριθμούς των άρθρων παρακάτω, για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
295646 ΔΙΑΔΙΚΑΣΙΕΣ: Μεταφορά δεδομένων από το αρχείο προέλευσης δεδομένων ADO στο Excel με ADO
247412 ΠΛΗΡΟΦΟΡΙΕΣ: Μέθοδοι για τη μεταφορά δεδομένων στο Excel από τη Visual Basic
246335 ΔΙΑΔΙΚΑΣΙΕΣ: Μεταφορά δεδομένων από μια ομάδα εγγραφών ADO σε Excel με αυτοματισμό
319951 ΔΙΑΔΙΚΑΣΙΕΣ: Μεταφέρετε δεδομένα στο Excel με τη χρήση υπηρεσιών μετασχηματισμού δεδομένων του SQL Server
306125 ΔΙΑΔΙΚΑΣΙΕΣ: Εισαγωγή δεδομένων από τον SQL Server στο Microsoft Excel

Ιδιότητες

Αναγν. άρθρου: 321686 - Τελευταία αναθεώρηση: Δευτέρα, 18 Νοεμβρίου 2013 - Αναθεώρηση: 8.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • 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 Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Λέξεις-κλειδιά: 
kbhowtomaster kbjet kbmt KB321686 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 321686

Αποστολή σχολίων

 

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