nDiviD
@nDiviD
Делать проекты, которыми можно гордиться

MS SQL и экспорт из него?

Добрый всем день.

Вообще, БД не мой профиль и занесло меня туда шальным ветром.

Стоит задача, с помощью скрипта, разрешите процитировать:
Раз, кликнул и готово!
перенести таблицу из БД SQL (2008 R2) в Access. (И обратно)

ODBC не покатит.

Я так понимаю в 1 сторону с помощью ADO.
  • Вопрос задан
  • 9514 просмотров
Пригласить эксперта
Ответы на вопрос 3
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Могу уточнить, зачем? Не проще ли абстрагироваться от БД написанием веб-морды, с которой пользователям будет работать проще хоть с ПК, хоть с планшета, хоть с смартфона, чем привязывать всех к MS Office и Access'у, который, кхм, идёт либо отдельно, либо в составе MS Orffice Pro за 18к рублей на один пк.
И перенести базу, например на SQL Express, если покупать нормальный MS SQL компания не потянет?
Ответ написан
Правой кнопкой на БД -> Tasks -> Export Data. Там все настраиваете. В общем-то это уже решение. Но если надо «раз кликнул и готово», то в конце есть опция вместо запуска экспорта сохранить dtsx пакет. Напишите батник просто, который будет его запускать. Это можно сделать вручную, а можно запустить dtexec.exe и настроив все параметры запуска (в основном пути, и строки подключения) скопируйте готовую строку со всеми параметрами с последней вкладки. Сохраните её в батник и все.

Иденственное, помните о том, что форматы пакетов между версиями эскуэль сервера разнятся. Если сделаете под 2008 то на 2005 например не запустится. Или на R2.

Данный подход позволит обойтись вообще без программирования.

Если хочется сложнее — sql server business intelligence studio

Если хочется руками, или описанное выше не позволяет редакция сервера, то почему ODBC то не покатит? Вы видимо выдаете не все условия задачи.
Ответ написан
Chamie
@Chamie
Ограничение на ODBC очень мешает. Вы даже не представляете, возможно, насколько, потому что и в Access, и, если не ошибаюсь, в самом MS SQL можно прямо через SQL делать выборку во внешнюю таблицу:
SELECT * INTO [ODBC;DSN=myODBC].my_table FROM my_table
Перенося таблицу целиком в один запрос.
Хотя, можно, наверное, и без ODBC, через OLE DB:
SELECT *
FROM OpenRowset('Microsoft.Jet.OLEDB.4.0', 
   'c:\northwind.mdb';'admin'; 'password', 
   'SELECT CustomerID, CompanyName
         FROM Customers
         WHERE Region = ''WA'' ')
©MSDN: Using Pass-Through Queries as Tables
См. Distributed Queries и ключевые слова, начинающиеся на OPEN (OPENDATASOURCE, OPENQUERY, OPENROWSET).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы