sql >> Database teknologi >  >> RDS >> Sqlserver

Kan ikke importere data fra excel 2003 til databasen ved hjælp af openrowset-funktionen

SQL-forespørgsel til OPENROWSET-funktion :--

1) Åbn SQL Server Management Studio

2) Åbn forespørgselsfeltet og skriv følgende kommandoer

3) For Excel 97 – 2003 fil, der er filer med filtypenavn XLS brug

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$]')

jeg. Det vil oprette tabel med navneadresser i den aktuelle valgte database.

ii. Microsoft.Jet.OLEDB.4.0 er driveren, der bruges til konvertering

iii. Excel-fil med sti - D:\SQL Scripts\msp.xls

iv. IMEX=1 egenskab inkluderet, kolonner, der indeholder blandede datatyper, behandles som streng-/tekstdatatyper.

v. HRD =Ja-egenskab betyder, at den øverste række af excel-filen består af kolonneoverskriftsnavn

vi. Ark1 er navnet på det ark, du vil importere

vii. Excel 8.0 angiver, at det er 97 – 2003-formatet Excel-fil

4) For at bruge filterforespørgsel kan brugeren bruge where-sætningen også med denne kommando som

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) For at kopiere excel-filen i foruddefineret SQL-tabel, brug OPENROWSET-funktionen med indsæt kommando som:-

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) Til Excel 2007 – 2010 fil, der er filer med filtypenavnet XLSX brug

VÆLG *INTO [dbo].[Adresser]FRA OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\SQL Scripts\msp.xlsx;HDR=YES;IMEX=1','SELECT * FRA [Sheet1$]')

jeg. Den vil oprette tabel med navneadresser i den aktuelle valgte database

ii. Microsoft.ACE.OLEDB.12.0 er driveren, der bruges til konvertering

iii. Excel-fil med sti - D:\SQL Scripts\msp.xlsx

iv. IMEX=1 egenskab inkluderet, kolonner, der indeholder blandede datatyper, behandles som streng-/tekstdatatyper.

v. HRD =Ja-egenskab betyder, at den øverste række af excel-filen består af kolonneoverskriftsnavn

vi. Ark1 er navnet på det ark, du vil importere

vii. Excel 12.0 angiver, at det er 2007-2010-formatet excel-fil

7) For at kopiere excel-filen i foruddefineret SQL-tabel, brug OPENROWSET-funktionen med indsæt kommando som:-

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$]')



  1. Sådan henter du rækkeantallet for alle tabeller i en SQL SERVER-database

  2. Indsæt i tabel ved hjælp af array-metoden med overordnet ID

  3. Operator forrang i regulære udtryk

  4. Undgå filsortering med INNER JOIN + BESTIL EFTER