Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Mit der openrowset-Funktion können keine Daten aus Excel 2003 in die Datenbank importiert werden

SQL-Abfrage für die OPENROWSET-Funktion :--

1) Öffnen Sie das SQL Server Management Studio

2) Öffnen Sie den Abfrageblock und schreiben Sie die folgenden Befehle

3) Verwenden Sie für Excel 97 – 2003-Dateien Dateien mit der Erweiterung XLS

SELECT * INTO [dbo].[Addresses]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]')

ich. Es wird eine Tabelle mit dem Namen Adressen in der aktuell ausgewählten Datenbank erstellt.

ii. Microsoft.Jet.OLEDB.4.0 ist der für die Konvertierung verwendete Treiber

iii. Excel-Datei mit Pfad - D:\SQL Scripts\msp.xls

iv. Eigenschaft IMEX=1 enthalten, Spalten, die gemischte Datentypen enthalten, werden als Zeichenfolgen-/Textdatentypen behandelt.

v. Die Eigenschaft HRD =Yes bedeutet, dass die oberste Zeile der Excel-Datei aus dem Namen der Spaltenüberschrift

besteht

vi. Blatt1 ist der Name des Blattes, das Sie importieren möchten

vii. Excel 8.0 gibt an, dass es sich um eine Excel-Datei im Format 97 – 2003 handelt

4) Um eine Filterabfrage zu verwenden, kann der Benutzer die Where-Klausel auch mit diesem Befehl wie

verwenden
SELECT * INTO [dbo].[Addresses]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]') where [column_name]=’value’

5) Um die Excel-Datei in eine vordefinierte SQL-Tabelle zu kopieren, verwenden Sie die OPENROWSET-Funktion mit einem Einfügebefehl wie:-

Create table Custom (Source_IP_ADD varchar(20),API_NAME varchar(50),COUNT_NO varchar(5),CLIENT_ID varchar(50),Date_OF_INVOKE varchar(50))

INSERT INTO [dbo].[Custom] ( [Source_IP_ADD], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_OF_INVOKE])

    SELECT [Source_IP_ADDR], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_INVOK] FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]')

6) Verwenden Sie für Excel 2007 – 2010-Dateien Dateien mit der Erweiterung XLSX

SELECT *INTO [dbo].[Addresses]FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'Excel 12.0;Database=D:\SQL Scripts\msp.xlsx;HDR=YES;IMEX=1' ,'SELECT * VON [Blatt1$]')

ich. Es wird eine Tabelle mit dem Namen Adressen in der aktuell ausgewählten Datenbank erstellt

ii. Microsoft.ACE.OLEDB.12.0 ist der für die Konvertierung verwendete Treiber

iii. Excel-Datei mit Pfad - D:\SQL Scripts\msp.xlsx

iv. Eigenschaft IMEX=1 enthalten, Spalten, die gemischte Datentypen enthalten, werden als Zeichenfolgen-/Textdatentypen behandelt.

v. Die Eigenschaft HRD =Yes bedeutet, dass die oberste Zeile der Excel-Datei aus dem Namen der Spaltenüberschrift

besteht

vi. Blatt1 ist der Name des Blattes, das Sie importieren möchten

vii. Excel 12.0 gibt an, dass es sich um eine Excel-Datei im Format 2007 – 2010 handelt

7) Um die Excel-Datei in eine vordefinierte SQL-Tabelle zu kopieren, verwenden Sie die OPENROWSET-Funktion mit einem Einfügebefehl wie:-

Create table Custom (Source_IP_ADD varchar(20),API_NAME varchar(50),COUNT_NO varchar(5),CLIENT_ID varchar(50),Date_OF_INVOKE varchar(50))

INSERT INTO [dbo].[Custom] ( [Source_IP_ADD], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_OF_INVOKE])
SELECT [Source_IP_ADDR], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_INVOK] FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'Excel 12.0;Database=D:\SQL Scripts\msp.xlsx;HDR=YES;IMEX=1' ,'SELECT * FROM [Sheet1$]')