Как экспортировать данные из таблицы Excel в таблицу Sql Server 2008. Экспорт в sql из excel в


tsql - T-SQL: экспорт в новый файл Excel

Это, безусловно, лучший пост для экспорта в excel из SQL:

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926

Процитировать от пользователя madhivanan,

Помимо использования мастера DTS и экспорта, мы также можем использовать этот запрос для экспорта данных из SQL Server2000 в Excel

Создайте файл Excel с именем testing с заголовками, аналогичными заголовкам столбцов таблицы, и используйте эти запросы

1 Экспорт данных в существующий файл EXCEL из таблицы SQL Server

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;', 'SELECT * FROM [SheetName$]') select * from SQLServerTable

2 Экспорт данных из Excel в новую таблицу SQL Server

select * into SQLServerTable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]')

3 Экспорт данных из Excel в существующую таблицу SQL Server (отредактирован)

Insert into SQLServerTable Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [SheetName$]')

4 Если вы не хотите заранее создавать файл EXCEL и хотите экспортировать данные на него, используйте

EXEC sp_makewebtask @outputfile = 'd:\testing.xls', @query = 'Select * from Database_name..SQLServerTable', @colheaders =1, @FixedFont=0,@lastupdated=0,@resultstitle='Testing details'

(Теперь вы можете найти файл с данными в табличном формате)

5 Чтобы экспортировать данные в новый файл EXCEL с заголовком (имена столбцов), создайте следующую процедуру

create procedure proc_generate_excel_with_columns ( @db_name varchar(100), @table_name varchar(100), @file_name varchar(100) ) as --Generate column names as a recordset declare @columns varchar(8000), @sql varchar(8000), @data_file varchar(100) select @columns=coalesce(@columns+',','')+column_name+' as '+column_name from information_schema.columns where table_name=@table_name select @columns=''''''+replace(replace(@columns,' as ',''''' as '),',',',''''') --Create a dummy file to have actual data select @data_file=substring(@file_name,1,len(@file_name)-charindex('\',reverse(@file_name)))+'\data_file.xls' --Generate column names in the passed EXCEL file set @sql='exec master..xp_cmdshell ''bcp " select * from (select '+@columns+') as t" queryout "'+@file_name+'" -c''' exec(@sql) --Generate data in the dummy file set @sql='exec master..xp_cmdshell ''bcp "select * from '+@db_name+'..'+@table_name+'" queryout "'+@data_file+'" -c''' exec(@sql) --Copy dummy file to passed EXCEL file set @sql= 'exec master..xp_cmdshell ''type '+@data_file+' >> "'+@file_name+'"''' exec(@sql) --Delete dummy file set @sql= 'exec master..xp_cmdshell ''del '+@data_file+'''' exec(@sql)

После создания процедуры выполните ее, указав имя базы данных, имя таблицы и путь к файлу:

EXEC proc_generate_excel_with_columns 'your dbname', 'your table name','your file path'

Его объявление 29 страниц, но это потому, что другие показывают разные способы, а также люди, задающие вопросы точно так же, как это делать.

Следуйте этой теме полностью и посмотрите на различные вопросы, которые задавали люди и как они решаются. Я получил довольно много знаний, просто просматривая его и использовал его части для получения ожидаемых результатов.

Обновление отдельных ячеек

Член также там Питер Ларсон сообщает следующее: Я думаю, здесь одна вещь отсутствует. Замечательно иметь возможность экспортировать и импортировать файлы Excel, но как насчет обновления отдельных ячеек? Или диапазон ячеек?

Это принцип того, как вы справляетесь с этим

update OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:\test.xls;hdr=no', 'SELECT * FROM [Sheet1$b7:b7]') set f1 = -99

Вы также можете добавить формулы в Excel, используя это:

update OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:\test.xls;hdr=no', 'SELECT * FROM [Sheet1$b7:b7]') set f1 = '=a7+c7'

Экспорт с именами столбцов с использованием T-SQL

У члена Mladen Prajdic также есть запись в блоге о том, как это сделать здесь

Ссылки: www.sqlteam.com (кстати, это отличный блог/форум для тех, кто хочет получить больше от SQL Server). Для ссылки на ошибку я использовал this

Если вы получите следующую ошибку:

Поставщик OLE DB "Microsoft.Jet.OLEDB.4.0" не может использоваться для распределенные запросы

Затем запустите это:

sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Ad Hoc Distributed Queries', 1; GO RECONFIGURE; GO

qaru.site

sql - Экспорт данных SQL-запроса в Excel

Я не знаю, это то, что вы ищете, но вы можете экспортировать результаты в Excel следующим образом:

В области результатов щелкните ячейку вверху слева, чтобы выделить все записи, а затем щелкните правой кнопкой мыши верхнюю левую ячейку и нажмите «Сохранить результаты как». Одним из вариантов экспорта является CSV.

Вы тоже можете это сделать:

INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:\Test.xls;','SELECT productid, price FROM dbo.product')

Наконец, вы можете изучить использование SSIS (замененный DTS) для экспорта данных. Вот ссылка на учебник:

http://www.accelebrate.com/sql_training/ssis_2008_tutorial.htm

У меня была аналогичная проблема, но с завихрением - перечисленные выше решения работали, когда набор результатов был из одного запроса, но в моей ситуации у меня было несколько отдельных запросов на выбор, для которых мне нужны были результаты для экспорта в Excel. Ниже приведен пример для иллюстрации, хотя я мог бы сделать name in разделе ...

select a,b from Table_A where name = 'x' select a,b from Table_A where name = 'y' select a,b from Table_A where name = 'z'

Мастер позволял мне экспортировать результат из одного запроса в excel, но не все результаты от разных запросов в этом случае.

Когда я исследовал, я обнаружил, что мы можем отключить результаты в сетке и включить результаты для текста. Итак, нажмите Ctrl + T, затем выполните все инструкции. Это должно показать результаты в виде текстового файла в окне вывода. Вы можете манипулировать текстом в формате с разделителями табуляции для импорта в Excel.

Вы также можете нажать Ctrl + Shift + F, чтобы экспортировать результаты в файл - он экспортируется как файл .rpt, который можно открыть с помощью текстового редактора и использовать для импорта excel.

Надеюсь, это поможет другим, имеющим аналогичную проблему.

code-examples.net

Как экспортировать данные из таблицы Excel в таблицу Sql Server 2008 Безопасный SQL

С вашего SQL Server Management Studio вы открываете Object Explorer, идите в свою базу данных, где хотите загрузить данные, щелкните правой кнопкой мыши и выберите «Задачи»> «Импорт данных».

Откроется мастер импорта данных, который обычно хорошо работает для импорта из Excel. Вы можете выбрать файл Excel, выбрать, какой рабочий лист импортировать данные, вы можете выбрать, в какую таблицу его хранить, и каковы будут столбцы. Довольно гибкий.

Вы можете запустить это как одноразовое, или вы можете сохранить его как пакет служб SQL Server Integration Services (SSIS) в свою файловую систему или в сам SQL Server и выполнять ее снова и снова (даже планируемое для запуска на заданное время, используя SQL Agent).

Обновление: да, да, да, вы можете делать все те вещи, о которых вы продолжаете спрашивать – вы даже пытались хотя бы один раз запустить этот мастер?

ОК, вот оно – шаг за шагом:

Шаг 1: выберите источник Excel

alt text http://i33.tinypic.com/xnfexf.png

Шаг 2. Выберите целевую базу данных SQL Server.

alt text http://i38.tinypic.com/2cofz1g.png

Шаг 3: выберите исходный рабочий лист (из Excel) и целевую таблицу в базе данных SQL Server; см. кнопку «Редактировать сопоставление»!

alt text http://i35.tinypic.com/3522mw3.png

Шаг 4: проверьте (и при необходимости измените) сопоставление столбцов Excel с столбцами SQL Server в таблице:

alt text http://i36.tinypic.com/vwz5lw.png

Шаг 5: если вы хотите использовать его позже, сохраните пакет SSIS на SQL Server:

alt text http://i37.tinypic.com/4v48wy.png

Шаг 6: – успех! Это на 64-битной машине, работает как шарм – просто сделай это!

alt text http://i34.tinypic.com/qyz5m9.png

Существует несколько инструментов, которые могут импортировать Excel в SQL Server.

Я использую DbTransfer (http://www.dbtransfer.com/Products/DbTransfer), чтобы выполнить эту работу. Основное внимание уделяется передаче данных между базами данных и excel, xml и т. Д.

Раньше я пробовал метод openrowset и ассистент импорта / экспорта SQL Server. Но я обнаружил, что эти методы не являются излишними сложными и подвержены ошибкам в работе с одним из доступных специализированных инструментов.

В SQL Server 2016 мастер представляет собой отдельное приложение. ( Важно : мастер Excel доступен только в 32-разрядной версии мастера!). Для получения инструкций используйте страницу MSDN :

On the Start menu, point to All Programs, point toMicrosoft SQL Server , and then click Import and Export Data. —or— In SQL Server Data Tools (SSDT), right-click the SSIS Packages folder, and then click SSIS Import and Export Wizard. —or— In SQL Server Data Tools (SSDT), on the Project menu, click SSIS Import and Export Wizard. —or— In SQL Server Management Studio, connect to the Database Engine server type, expand Databases, right-click a database, point to Tasks, and then click Import Data or Export data. —or— In a command prompt window, run DTSWizard.exe, located in C:\Program Files\Microsoft SQL Server\100\DTS\Binn.

После этого он должен быть почти таким же (возможно, с небольшими вариациями в пользовательском интерфейсе), как в ответе @ marc_s.

В качестве альтернативы существует несколько веб-инструментов, которые конвертируют файлы Excel в файлы SQL.

https://sqlizer.io создаст файл определения таблицы, за которым последуют все данные в качестве вставных операторов, затем его можно просто импортировать в SQL Server Management Studio (File> Open> File … в SQL SMS) – или в любая другая база данных, совместимая с SQL.

Вот его фотография:

sql.fliplinux.com

sql - Как экспортировать данные из таблицы Excel в таблицу Sql Server 2008

С вашего SQL Server Management Studio вы открываете Object Explorer, идите в свою базу данных, где хотите загрузить данные, щелкните правой кнопкой мыши и выберите «Задачи»> «Импорт данных».

Откроется мастер импорта данных, который обычно хорошо работает для импорта из Excel. Вы можете выбрать файл Excel, выбрать, какой рабочий лист импортировать данные, вы можете выбрать, в какую таблицу его хранить, и каковы будут столбцы. Довольно гибкий.

Вы можете запустить это как одноразовое, или вы можете сохранить его как пакет служб SQL Server Integration Services (SSIS) в свою файловую систему или в сам SQL Server и выполнять ее снова и снова (даже планируемое для запуска на заданное время, используя SQL Agent).

Обновление: да, да, да, вы можете делать все те вещи, о которых вы продолжаете спрашивать - вы даже пытались хотя бы один раз запустить этот мастер?

ОК, вот оно - шаг за шагом:

Шаг 1: выберите источник Excel

Шаг 2. Выберите целевую базу данных SQL Server.

Шаг 3: выберите исходный рабочий лист (из Excel) и целевую таблицу в базе данных SQL Server; см. кнопку «Редактировать сопоставление»!

Шаг 4: проверьте (и при необходимости измените) сопоставление столбцов Excel с столбцами SQL Server в таблице:

Шаг 5: если вы хотите использовать его позже, сохраните пакет SSIS на SQL Server:

Шаг 6: - успех! Это на 64-битной машине, работает как шарм - просто сделай это!

В SQL Server 2016 мастер представляет собой отдельное приложение. ( Важно : мастер Excel доступен только в 32-разрядной версии мастера!). Для получения инструкций используйте страницу MSDN :

On the Start menu, point to All Programs, point toMicrosoft SQL Server , and then click Import and Export Data. —or— In SQL Server Data Tools (SSDT), right-click the SSIS Packages folder, and then click SSIS Import and Export Wizard. —or— In SQL Server Data Tools (SSDT), on the Project menu, click SSIS Import and Export Wizard. —or— In SQL Server Management Studio, connect to the Database Engine server type, expand Databases, right-click a database, point to Tasks, and then click Import Data or Export data. —or— In a command prompt window, run DTSWizard.exe, located in C:\Program Files\Microsoft SQL Server\100\DTS\Binn.

После этого он должен быть почти таким же (возможно, с небольшими вариациями в пользовательском интерфейсе), как в ответе @ marc_s.

code-examples.net

sql - Экспорт из Excel в SQL: вход для пользователя не выполнен

Я пытаюсь создать функцию в Excel, которая будет записывать данные в удаленную базу данных SQL Server одним нажатием кнопки. Тем не менее, я продолжаю получать сообщение о том, что мой логин завершился неудачно для пользователя "UserName" (ошибка 80040e4d).

Сначала я подумал, что проблема с моим User/Login в базе данных должна быть проблемой, поэтому я отправился на удаленный рабочий стол, открыл SQL Server Management Studio и проверял все мои права, сделал проверку подлинности Windows, проверил пароль и т.д. Все еще не сработало.

Моему пользователю были предоставлены разрешения на чтение и запись, поэтому я попытался импортировать данные в Excel из SQL, которые действительно работали. Поэтому я предполагаю, что это должно быть проблемой в моем коде VBA, а точнее, в моей строке подключения.

Я был бы признателен, если бы кто-нибудь мог взглянуть на него и сказать, что я делаю неправильно? Или, если у кого-то еще была эта проблема и кто ее знает?

Вот код, который у меня есть:

Sub Button3_Click() Dim conn As New ADODB.Connection Dim iRowNo As Integer Dim sArtistId, sForename, sSurname, sNationality, sBirthDate, sDeathDate As String With Sheets("NewArtist") 'Open a connection to SQL Server conn.Open "Provider=SQLOLEDB;Data Source=tcp:IPADDRESS,1433\SqlServer2008;" & _ "Initial Catalog=DatabaseName;User ID=UserName;Password=PassWord" & _ "Integrated Security=SSPI;" 'Skip the header row iRowNo = 2 'Loop until empty cell in CustomerId Do Until .Cells(iRowNo, 1) = "" sCustomerId = .Cells(iRowNo, 1) sFirstName = .Cells(iRowNo, 2) sLastName = .Cells(iRowNo, 3) 'Generate and execute sql statement to import the excel rows to SQL Server table conn.Execute "insert into dbo.Components (ArtistId, Forename, Surname, Nationality, BirthDate, DeathDate) values ('" & sArtistId & "', '" & sForename & "', '" & sSurname & "', '" & sNationality & "', '" & sBirthDate & "', '" & DeathDate & "')" iRowNo = iRowNo + 1 Loop MsgBox "Artists imported." conn.Close Set conn = Nothing End With End Sub

Большое спасибо!

общий вес

qaru.site

Как экспортировать данные из таблицы Excel в Sql Server 2008 таблица

С вашего SQL Server Management Studio вы открываете Object Explorer, идите в свою базу данных, где хотите загрузить данные, щелкните правой кнопкой мыши, затем выберите «Задачи»> «Импорт данных».

Это открывает мастер импорта данных, который обычно хорошо работает для импорта из Excel. Вы можете выбрать файл Excel, выбрать, какой рабочий лист импортировать данные, вы можете выбрать, в какую таблицу его хранить, и каковы будут столбцы. Довольно гибкий.

Вы можете запустить это как одноразовое или сохранить его в виде пакета служб SQL Server Integration Services (SSIS) в свою файловую систему или в сам SQL Server и выполнить его снова и снова (даже по расписанию для запуска в определенный момент времени, используя SQL Agent).

Обновление: Да, да, да, вы можете делать все то, что вы продолжаете просить - вы даже попытались хотя бы раз запустить этот волшебник?

ОК, здесь речь идет - шаг за шагом:

Шаг 1: выбрать свой источник Excel

Шаг 2: выбрать ваш SQL целевой сервер базы данных

Шаг 3: выберите исходный рабочий стол (из Excel) и целевую таблицу в базе данных SQL Server; см. кнопку «Редактировать сопоставление»!

Шаг 4: проверка (и изменения, если это необходимо) ваши отображения столбцов Excel в столбцах SQL Server в таблице:

Шаг 5: если вы хотите использовать его позже, сохраните пакет SSIS в SQL Server:

Шаг 6: - Успех! Это на 64-битной машине, работает как шарм - просто сделай это!

stackoverrun.com

Экспорт SQL-кода из Excel в SQL MS Excel онлайн

Мой уровень мастерства: базовый пользователь VBA, почти ничего не знаю о SQL (хотя я недавно узнал, как выполнять код и т. Д.).

Я создал пользовательский интерфейс на листе Excel, чтобы позволить пользователю вводить переменные отчета (даты и т. Д.). Они переходят во второй лист Excel, который с помощью различных операторов Excel создает необходимый код SQL. Затем мой макрос копирует этот рабочий лист и открывает Microsoft SQL Server 2008 Rx через команду оболочки. В настоящее время я вручную нажимаю «connect» на появившемся окне Microsoft SQL Server 2008 R2 «подключение к серверу» (для которого не требуется пароль, просто требуется, чтобы я нажал «connect»), я создаю новый запрос, я вставляю код, а затем выполнить в SQL. Итак, это последние шаги (открытие SQL, щелчок «connect», копирование / вставка кода, выполнение), который я пытаюсь автоматизировать с помощью VBA.

Чтобы предложить больше контекста, после запуска SQL-кода, у меня есть второй макрос, который использует мастер подключения к данным Excel, чтобы вернуть результирующие данные SQL в мой рабочий лист. Это хорошо работает.

Я исследовал это несколько дней на разных досках. Кажется, что никто не видит моего подхода к созданию кода в Excel (вероятно, потому, что это неэлегантный подход). Или ответы на сообщения выше моего уровня навыков, чтобы понять. Но я боюсь, что задаю вопрос, на который был дан ответ раньше (извинения заранее).

Спасибо за любой совет / время, которое может быть предложено.

Я использую: Excel / Office 2010 Microsoft SQL Server2008 R2 (это то же самое, что и Microsoft SQL Server Management Studios? В моем приложении SQL показаны оба имени) Microsoft ActiveX Data Objects 6.1 Library (в настоящее время это не проверено. ссылается на необходимость этого. У меня также есть несколько предыдущих версий библиотеки AciveX.)

Solutions Collecting From Web of "Экспорт SQL-кода из Excel в SQL"

То, что вы делаете, очень изобретательно, но, вероятно, это не обязательно. Excel имеет ряд функций для импорта внешних данных.

Я бы посмотрел вкладку « Data » в Excel и раздел « From Other Sources » ленты. У вас есть как минимум три варианта: « From SQL Server , « From Data Connection Wizard и « From Microsoft Query .

Все они будут устанавливать соединение с сервером базы данных и выполнять SQL против него. Они возвращают данные в вашу таблицу по-разному.

Когда VBA снова войдет в игру, это автоматизирует генерацию и параметризацию запросов, которые они будут выполнять.

Но я бы установил что-то, что работает, с константами для ваших значений параметров, во-первых, чтобы вы получили представление о возможностях, а затем прочитали и исследовали динамическую настройку своего SQL с помощью VBA.

Кстати, вы можете также исследовать PowerPivot .

excel.bilee.com