SQL-запрос для функции OPENROWSET: --
1) Откройте студию управления SQL Server.
2) Откройте панель запросов и напишите следующие команды
3) Для файлов Excel 97 – 2003, то есть файлов с расширением 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$]')
я. Он создаст таблицу с именем Addresses в текущей выбранной базе данных.
II. Microsoft.Jet.OLEDB.4.0 — драйвер, используемый для преобразования
III. Файл Excel с путем — D:\SQL Scripts\msp.xls
IV. При включенном свойстве IMEX=1 столбцы, содержащие смешанные типы данных, обрабатываются как строковые/текстовые типы данных.
v. Свойство HRD = Yes означает, что верхняя строка файла Excel состоит из имени заголовка столбца.
ви. Sheet1 — это имя листа, который вы хотите импортировать.
vii. Excel 8.0 указывает, что это файл Excel формата 97 — 2003.
4) Чтобы использовать запрос фильтра, пользователь может использовать предложение where также с этой командой, например
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) Чтобы скопировать файл excel в предопределенную таблицу SQL, используйте функцию OPENROWSET с командой вставки, например: -
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) Для файлов Excel 2007–2010, то есть файлов с расширением XLSX, используйте
SELECT * INTO [dbo].[Адреса] FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\SQL Scripts\msp.xlsx;HDR=YES;IMEX=1','SELECT * ОТ [Лист1$]')
я. Он создаст таблицу с именем Addresses в текущей выбранной базе данных.
II. Microsoft.ACE.OLEDB.12.0 — это драйвер, используемый для преобразования
III. Файл Excel с путем — D:\SQL Scripts\msp.xlsx
IV. При включенном свойстве IMEX=1 столбцы, содержащие смешанные типы данных, обрабатываются как строковые/текстовые типы данных.
v. Свойство HRD = Yes означает, что верхняя строка файла Excel состоит из имени заголовка столбца.
ви. Sheet1 — это имя листа, который вы хотите импортировать.
vii. Excel 12.0 указывает, что это файл Excel формата 2007–2010 гг.
7) Чтобы скопировать файл excel в предопределенную таблицу SQL, используйте функцию OPENROWSET с командой вставки, например: -
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$]')
person
Yoko Zunna
schedule
28.03.2012