Вопрос по sql, sql-server, export, tsql, import – SQL Server Management Studio 2012 - экспорт / импорт данных из / в таблицу

2

У меня есть таблица с более чем 3 000 000 строк. Я пытаюсь экспортировать данные из него вручную и с помощью SQL Server Management StudioExport data функциональность в Excel, но я столкнулся с несколькими проблемами:

when create .txt file manually copying and pasting the data (this is several times, because if you copy all rows from the SQL Server Management Studio it throws out of memory error) I am not able to open it with any text editor and to copy the rows;

the Export data to Excel do not work, because Excel do not support so many rows

Наконец, сExport data Функциональность, которую я создал.sql файл, но он составляет 1,5 ГБ, и я не могу открыть его в SQL Server Management Studio снова.

Есть ли способ импортировать его сImport data функциональность, или другой более умный способ сделать резервную копию информации моей таблицы и затем импортировать ее снова, если мне это нужно?

Заранее спасибо.

Ваш Ответ

2   ответа
0

Вот способ сделать это без BCP:

  1. EXPORT THE SCHEMA AND DATA IN A FILE

    • Use the ssms wizard Database >> Tasks >> generate Scripts… >> Choose the table >> choose db model and schema
    • Save the SQL file (can be huge)
    • Transfer the SQL file on the other server
  2. SPLIT THE DATA IN SEVERAL FILES

    • Use a program like textfilesplitter to split the file in smaller files and split in files of 10 000 lines (so each file is not too big)
    • Put all the files in the same folder, with nothing else
  3. IMPORT THE DATA IN THE SECOND SERVER

    • Create a .bat file in the same folder, name execFiles.bat
    • You may need to check the table schema to disable the identity in the first file, you can add that after the import in finished.
    • This will execute all the files in the folder against the server and the database with, the –f define the Unicode text encoding should be used to handle the accents:

      for %%G in (*.sql) do sqlcmd /S ServerName /d DatabaseName -E -i"%%G" -f 65001 pause

3

Я не совсем уверен, понимаю ли я ваши требования (я не знаю, нужно ли вам экспортировать данные в Excel или вы хотите сделать какую-то резервную копию).

Чтобы экспортировать данные из отдельных таблиц, вы можете использоватьBulk Copy Tool который позволяет экспортировать данные из отдельных таблиц и экспортировать / импортировать их в файлы. Вы также можете использовать пользовательский запрос для экспорта данных.

Важно, что это не генерирует файл Excel, но другой формат. Вы можете использовать это для перемещения данных из одной базы данных в другую (должен быть MS SQL в обоих случаях).

Примеры: Создайте файл формата:

Bcp [TABLE_TO_EXPORT] format "[EXPORT_FILE]" -n -f "[ FORMAT_FILE]" -S [SERVER] -E -T -a 65535

Экспортировать все данные из таблицы:

bcp [TABLE_TO_EXPORT] out "[EXPORT_FILE]" -f "[FORMAT_FILE]" -S [SERVER] -E -T -a 65535

Импортируйте ранее экспортированные данные:

bcp [TABLE_TO_EXPORT] in [EXPORT_FILE]" -f "[FORMAT_FILE] " -S [SERVER] -E -T -a 65535

Я перенаправляю выходные данные из операций экспорта / импорта в файл журнала (добавляя & quot; & gt; mylogfile.log & quot; конец команды) - это помогает, если вы экспортируете много данных.

вы выполняете bcp на сервере базы данных напрямую? Пожалуйста, опубликуйте полное сообщение об ошибке. Вы пытались выполнить командную строку с помощью команды «Запуск от имени администратора»?
Большое спасибо за Вашу помощь. Когда я запускаю командную строку через & quot; запускать как администратор & quot; он успешно экспортировал данные. Затем я успешно импортировал его обратно. Это действительно более быстрый способ импорта / экспорта данных. gotqn
Да, я посмотрел по ссылке. Я также использую параметры пользователя и пароля. Моя учетная запись является администратором с полными правами. gotqn
К сожалению, я не знаю разрешений, которые ваша Useraccount имеет на сервере, и я не знаю разрешений для базы данных. Это может быть проблема Filepermission в экспортированном файле / каталоге или что-то еще. Вы смотрели на ссылку MSDN? Может быть, вам нужно добавить еще один параметр в командной строке (например, имя пользователя / пароль - в зависимости от вашей конфигурации). Если это не работает - возможно, вы сможете опубликовать дополнительную информацию (точное сообщение об ошибке, команду, которую вы используете, и т. Д.)
Спасибо за быстрый ответ. Я прочитал об утилите BCP и включил ее. Когда я пытаюсь выполнить экспорт, он говорит мне «Доступ запрещен». Я читал, что если вы войдете в систему с учетной записью SA, она должна работать, но я получаю & quot; Доступ запрещен & quot; снова. Вы встречали ту же проблему? gotqn

Похожие вопросы