SQL-запрос для функции OPENROWSET: -
1) Откройте SQL Server Management Studio
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 состоит из имени заголовка столбца
VI. 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, использует
ВЫБРАТЬ *
INTO [dbo]. [Адреса]
FROM OPENROWSET ('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0; База данных = D: \ SQL Scripts \ msp.xlsx; HDR = YES; IMEX = 1', 'SELECT * FROM [Sheet1 $]')
я. Это создаст таблицу с именем Адреса в текущей выбранной базе данных
* 1 035 * II. Microsoft.ACE.OLEDB.12.0 - это драйвер, используемый для конвертации
III. Файл Excel с путем - D: \ SQL Scripts \ msp.xlsx
IV. Свойство IMEX = 1 включено, столбцы, которые содержат смешанные типы данных, обрабатываются как строковые / текстовые типы данных.
v. Свойство HRD = Yes означает, что верхняя строка файла Excel состоит из имени заголовка столбца
VI. 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$]')