Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Nie można zaimportować danych z programu Excel 2003 do bazy danych za pomocą funkcji openrowset

Zapytanie SQL dla funkcji OPENROWSET:--

1) Otwórz Studio zarządzania serwerem SQL

2) Otwórz klawiaturę zapytań i wpisz następujące polecenia

3) Dla pliku Excel 97 – 2003, czyli plików z rozszerzeniem XLS użyj

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

i. Utworzy tabelę z nazwami Adresy w aktualnie wybranej bazie danych.

ii. Microsoft.Jet.OLEDB.4.0 to sterownik używany do konwersji

iii. Plik Excel ze ścieżką - D:\SQL Scripts\msp.xls

iv. Uwzględniono właściwość IMEX=1, kolumny zawierające przemieszane typy danych są traktowane jako typy danych typu ciąg/tekst.

v. HRD =Właściwość Tak oznacza, że ​​górny wiersz pliku Excel zawiera nazwę nagłówka kolumny

vi. Arkusz1 to nazwa arkusza, który chcesz zaimportować

vii. Excel 8.0 określa, że ​​jest to plik Excel w formacie 97 – 2003

4) Aby użyć zapytania filtrującego, użytkownik może użyć klauzuli where również z tym poleceniem, takim jak

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) Aby skopiować plik Excela do predefiniowanej tabeli SQL, użyj funkcji OPENROWSET z poleceniem wstawiania, takim jak:-

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) Dla pliku Excel 2007 – 2010, czyli plików z rozszerzeniem XLSX użyj

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

i. Utworzy tabelę z nazwami Adresy w aktualnie wybranej bazie danych

ii. Microsoft.ACE.OLEDB.12.0 to sterownik używany do konwersji

iii. Plik Excel ze ścieżką - D:\SQL Scripts\msp.xlsx

iv. Uwzględniono właściwość IMEX=1, kolumny zawierające przemieszane typy danych są traktowane jako typy danych typu ciąg/tekst.

v. HRD =Właściwość Tak oznacza, że ​​górny wiersz pliku Excel zawiera nazwę nagłówka kolumny

vi. Arkusz1 to nazwa arkusza, który chcesz zaimportować

vii. Excel 12.0 określa, że ​​jest to plik Excel w formacie 2007 – 2010

7) Aby skopiować plik Excela do predefiniowanej tabeli SQL, użyj funkcji OPENROWSET z poleceniem wstawiania, takim jak:-

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wygenerować instrukcję dodawania kolumny dla wszystkich tabel w bazie danych w programie SQL Server — część samouczka SQL Server / T-SQL 49

  2. Trzy najważniejsze trendy wpływające na administratorów baz danych odpowiedzialnych za monitorowanie SQL Server

  3. Problem z zapytaniem SQL

  4. Jak wstawić aktualną datę w kolumnie wiersza

  5. SQL Server:wybierz najnowsze wiersze, których suma pasuje do wartości