MyTetra Share
Делитесь знаниями!
Распределенные запросы
Время создания: 26.01.2019 20:55
Текстовые метки: Распределенный, запрос, Ad Hoc, distributed, queries
Раздел: Разные закладки - Microsoft SQL Server - VBA и MS Sql Server
Запись: xintrea/mytetra_db_adgaver_new/master/base/1548525301an2rnnmu5b/text.html на raw.githubusercontent.com

Распределенные запросы

Импортируйте данные напрямую из файлов Excel с помощью функции Transact-SQL OPENROWSET или OPENDATASOURCE. Такая операция называется распределенный запрос.

Перед выполнением распределенного запроса необходимо включить параметр ad hoc distributed queries в конфигурации сервера, как показано в примере ниже. Дополнительные сведения см. в статье ad hoc distributed queries Server Configuration Option (Параметр конфигурации сервера "ad hoc distributed queries").


sp_configure 'show advanced options', 1;

RECONFIGURE;

GO

sp_configure 'Ad Hoc Distributed Queries', 1;

RECONFIGURE;

GO


В приведенном ниже примере кода данные импортируются из листа Excel Data в новую таблицу базы данных с помощью OPENROWSET.


USE ImportFromExcel;

GO

SELECT * INTO Data_dq

FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',

'Excel 12.0; Database=D:\Desktop\Data.xlsx', [Data$]);

GO


Ниже приведен тот же пример с OPENDATASOURCE.


USE ImportFromExcel;

GO

SELECT * INTO Data_dq

FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',

'Data Source=D:\Desktop\Data.xlsx;Extended Properties=Excel 12.0')...[Data$];

GO


Чтобы добавить импортированные данные в существующую таблицу, а не создавать новую, используйте синтаксис INSERT INTO ... SELECT ... FROM ... вместо синтаксиса SELECT ... INTO ... FROM ... из предыдущих примеров.

Для обращения к данным Excel без импорта используйте стандартный синтаксис SELECT ... FROM ....


 
MyTetra Share v.0.64
Яндекс индекс цитирования