У меня есть таблица Excel, в которой я хочу импортировать столбцы выбора в таблицу базы данных SQL Server 2008. Мастер не предлагал эту опцию.
Существуют ли какие-либо простые варианты кода?
У меня есть таблица Excel, в которой я хочу импортировать столбцы выбора в таблицу базы данных SQL Server 2008. Мастер не предлагал эту опцию.
Существуют ли какие-либо простые варианты кода?
После подключения к базе данных Sql Server 2005, в окне обозревателя объектов щелкните правой кнопкой мыши на базе данных, в которую вы хотите импортировать таблицу. Выберите Задачи → Импорт данных. Это простой инструмент и позволяет вам "отображать" входящие данные в соответствующую таблицу. Вы можете сохранить сценарии для запуска снова, когда это необходимо.
Microsoft предлагает несколько методов:
Если мастер (DTS) не работает (и я думаю, что он должен), вы можете попробовать что-то вроде http://www.devasp.net/net/articles/display/771.html, которое в основном предлагает сделать что-то вроде
INSERT INTO [tblTemp] ([Column1], [Column2], [Column3], [Column4])
SELECT A.[Column1], A.[Column2], A.[Column3], A.[Column4]
FROM OPENROWSET
('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\Excel.xls;HDR=YES', 'select * from [Sheet1$]') AS A;
Это может показаться длинным, но вы можете захотеть использовать Excel для генерации кода INSERT, который вы можете пропустить в Query Analyzer для создания вашей таблицы.
Хорошо работает, если вы не можете использовать мастеров, потому что файл excel не находится на сервере
Вы можете использовать OPENROWSET, что-то вроде:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;IMEX=1;HDR=NO;DATABASE=C:\FILE.xls', 'Select * from [Sheet1$]'
Просто убедитесь, что путь - это путь на сервере, а не локальная машина.
go
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
go
SELECT * into temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Documents and Settings\abhisharma\Desktop\exl\ImportExcel2SQLServer\ImportExcel2SQLServer\example.xls;IMEX=1',
'SELECT * FROM [Sheet1$]')
select * from temptable
Другой вариант - использовать VBA в Excel и написать макрос для анализа данных электронной таблицы и записи в SQL.
Один пример здесь: http://www.ozgrid.com/forum/showthread.php?t=26621&page=1
Sub InsertARecord()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stCon As String, stSQL As String
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset
stCon = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=JOEY"
cnt.ConnectionString = stCon
stSQL = "INSERT INTO MyTable (Price)"
stSQL = stSQL & "VALUES (500)"
cnt.Open
rst.Open stSQL, cnt, adOpenStatic, adLockReadOnly, adCmdText
If CBool(rst.State And adStateOpen) = True Then rst.Close
Set rst = Nothing
If CBool(cnt.State And adStateOpen) = True Then cnt.Close
Set cnt = Nothing
End Sub
В разделе "wiz" я предполагаю, что вы говорите об "Мастере импорта и экспорта SQL Server". (Я тоже довольно новичок, поэтому я не понимаю большинства вопросов, а тем более большинство ответов, но я думаю, что получаю это). Если вы не могли взять таблицу или ее копию, удалите столбцы, которые вы не хотите импортировать, а затем используйте мастер?
Я всегда находил способность делать то, что мне нужно, и я только на SQL Server 2000 (не знаю, как отличаются другие версии).
Изменить: на самом деле я смотрю на него сейчас, и я, кажется, могу выбрать, какие столбцы я хочу сопоставить с какими строками в существующей таблице. На экране "Выберите исходные таблицы и виды" я проверяю таблицу, которую я использую, выберите "Назначение" и нажмите кнопку "Изменить...". Оттуда вы можете выбрать столбец Excel и столбец таблицы для его сопоставления.
Если вы хотите визуальный инструмент с интерфейсом Desktop, включая проверку, вам может понравиться этот инструмент Excel. Вы также можете использовать этот инструмент для создания многопользовательских задач редактирования данных или даже вставки данных на SQL-сервер из любого источника.
Как проверить и импортировать электронную таблицу Excel в базу данных SQL Server:
Microsoft Access - это еще один вариант. У вас может быть локальная база данных Access на вашем компьютере, в которой вы импортируете таблицы Excel (доступные wizards) и ссылку на таблицы базы данных SQL Server через ODBC.
Затем вы можете создать запрос в доступе, который добавляет данные из электронной таблицы Excel в таблицы SQL Server.
Лучший инструмент, который я когда-либо использовал, http://tools.perceptus.ca/text-wiz.php?ops=7 Пробовал?
Я думаю, это поможет вам
Мастер импорта предлагает эту опцию. Вы можете использовать опцию для записи собственного запроса для импортируемых данных или использовать параметр "Копировать данные" и использовать кнопку "Редактировать сопоставление", чтобы игнорировать столбцы, которые вы не хотите импортировать.
Excel + SQLCMD + Perl = exceltomssqlinsert
и вы можете использовать Excel как конец для MSSQL db... Обратите внимание на таблицу обрезания в начале каждого сгенерированного файла вставки sql...
Я использовал DTS (теперь известный как мастер импорта и экспорта SQL-сервера). Я использовал этот учебник, который отлично подойдет для меня даже в Sql 2008 и excel 2010 (14.0)
Я надеюсь, что это поможет
-D
Прежде всего, попробуйте 32-битную версию мастера импорта. Это показывает гораздо более поддерживаемые форматы импорта.
Фон: Все зависит от установки вашего Office (Runtimes Engines).
Если у вас не установлен Office 2007 или выше, мастер импорта (32 бит) позволяет импортировать файлы Excel 97-2003 (.xls).
Если у вас установлен Office 2010 и geater (поставляется также с 64-битным, не рекомендуется), мастер импорта также поддерживает файлы Excel 2007+ (.xlsx).
Чтобы получить обзор времени выполнения, см. 'Microsoft.ACE.OLEDB.12.0' поставщик не зарегистрирован на локальном компьютере