Я часто получаю запросы, которые выглядят примерно так:Регистрация Excel таблицы в базе данных SQL
"Hey, can you reconcile this Excel spreadsheet with our database and
fill in the additional info for the ones you find? We also need to know
which ones are missing."
ID Name Client AdditionalInfo
------------------------------------------
234 John Client1
147 Mike Client2
546 Mary Client3
...
(Several hundred or thousand more rows)
Есть ли какой-нибудь способ взять электронную таблицу Excel, как это и присоединиться к нему в базу данных SQL в SQL Server Management Studio ? Обычно я копирую ID
, чтобы сделать массивный список IN
, который явно далеко от идеала. Тогда у меня все еще есть задача выстраивать данные, если я не получаю соответствие 1: 1 для каждой строки.
Я использую SQL Server 2005 и Excel 2010.
Я пытался добавить таблицу Excel в качестве связанного сервера, но запрашивая его предупредил меня, что 'Ad Hoc Distributed Queries'
блокируются и должны быть включены. Я не уверен, какие отрицательные последствия могут иметь, поэтому я не пошел дальше по этому маршруту.
Моя следующая мысль заключалась в том, чтобы использовать формулы Excel для создания SELECT [Col_A], [Col_B], [Col_C] UNION ALL
для каждой отдельной строки в Excel, а затем скопировать ее в SSMS, чтобы создать временную таблицу, в которую я мог бы присоединиться ... но это все еще кажется довольно грязным и неэффективным взломом
Ничтожное, самое изящное решение! +1 –