C # импортировать базу данных MS-Access в SQL Server? - PullRequest
1 голос
/ 22 февраля 2012

Мне нужно импортировать данные из базы данных MS Access в базу данных SQl Server 2000 один раз в день. Поскольку мне нужно, чтобы это делалось каждый день в автоматическом режиме, существует ли подпрограмма c #, которая сможет это сделать?

Таблицы в базе данных MS Access будут именоваться как те же таблицы в SQL Server, и для этого необходимо удалить таблицы в базе данных SQL Server, а затем импортировать новые данные / таблицы из MS Access.

Ответы [ 3 ]

1 голос
/ 22 февраля 2012

Один из вариантов - создать хранимую процедуру в базе данных сервера SQL для этого, см. Здесь: выбрать из файла базы данных доступа и вставить в базу данных sql

Как было упомянуто marc_sВы можете использовать SSIS, но для получения этого права может потребоваться немало обучения.

Другой вариант - управлять им из C # - извлекать данные из БД доступа и вставлять их всервер sql - вряд ли это то, что вам нужно.

Если ваша база данных доступа и экземпляр сервера sql гарантированно находятся на одном и том же сервере, то я склонен попробовать вариант 1. Если нет, то оноткрывает десятки дополнительных вопросов;)

РЕДАКТИРОВАТЬ: вы упоминаете, что это может быть сделано, нажав кнопку - в этом случае вы действительно должны дать решение SSIS, по крайней мере, один раз и посмотреть, выглядит ли это, как выхочу, он предназначен именно для этого типа сценария.

0 голосов
/ 16 января 2016

access.mdb связан с серверами в sql server любых версий, должен быть необходим Microsoft.ACE.OLEDB.12.0 или Microsoft.Jet.OLEDB.4.0. Эти драйверы существуют двух типов: 32-битные и 64-битные. 64-битные ОС предпочитают устанавливать драйверы для 64-битных струй, иначе мудрое соединение не может работать.

0 голосов
/ 22 февраля 2012

Три шага:

1 - Создайте LinkedServer в SQLServer следующим образом:
EXEC master.dbo.sp_addlinkedserver @server = 'Customers', @srvproduct = 'CustomersDB', @provider = 'Microsoft.Jet.OLEDB.4.0', @datasrc = 'C:\inetpub\wwwroot\ftp\AccessDB.MDB', @location = '', @provstr = '', @catalog = ''
EXEC master.dbo.sp_serveroption @server = 'Customers', @optname = 'collation compatible', @optvalue = 'false'

2 - Создайте хранимую процедуру внутри целевого sqlserverвыполнение импорта
CREATE PROCEDURE ImportMDBData
as
TRUNCATE TABLE sqlServerCustTable
INSERT INTO sqlServerCustTable (list your columns name here) (SELECT * FROM Customers.dbo.mdbCustTable)

3 - теперь вам просто нужно вызвать хранимую процедуру из вашего кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...