2008-10-21 4 views
62

У меня есть таблица базы данных на сервере разработки, которая теперь полностью заполнена после того, как я установил ее с помощью процедуры импорта для файла CSV, содержащего 1,4 миллиона строк.SQL Server - Запуск больших файлов сценариев

Я запустил мастер публикации базы данных на столе, и теперь у меня на моем локальном компьютере есть сценарий SQL 286MB. Проблема в том, что я не могу понять, как ее запустить. Если я загружу его в SQL Server Management Studio Express, я получаю окно предупреждения, в котором говорится: «Операция не может быть выполнена».

Любые идеи о том, как я могу запустить этот SQL-скрипт?

+1

Я задал аналогичный вопрос о DBA и получил довольно хорошую обратную связь (http://dba.stackexchange.com/questions/16763/how-do-i-run-a-large-script-with-many-inserts -without-out-of-of-memory /) – spaghetticowboy 2012-04-23 13:20:59

ответ

-5

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

Другой вариант - посмотреть на некоторые другие способы импорта CSV-данных напрямую.

160

использовать инструмент sqlcmd выполнить файл ..

sqlcmd -S myServer\instanceName -i C:\myScript.sql 
+1

Используя этот метод, я получаю сообщение об ошибке «Sqlcmd: Error: Scripting error.» Это связано с размером файла? – tags2k 2008-10-21 16:16:34

+0

сначала проверьте подключение. возможно, вам нужно передать имя пользователя и пароль (-U -P). вы также можете попробовать с меньшим файлом. Я без проблем столкнулся с огромными сценариями. – 2008-10-21 16:18:34

+0

Если я вывожу все, кроме 15 инструкций INSERT, он работает. Если я вернусь, остальные 1,410,472 заявления вернутся с этим сообщением об ошибке. – tags2k 2008-10-21 16:27:01

0

Почему бы просто не использовать DTS для импорта CSV-файла напрямую?

16

Этот инструмент (Big SQL Script File Runner) на CodePlex будет запускать любой файл сценария любого размера с журналом и графическим интерфейсом.

7

Добавление ответа Gulzar Назима: Если вы все еще получаете отказ, попробуйте указать в codepage вашего файла SQL с помощью опции -f:

sqlcmd -S myServer\instanceName -d databaseName -i C:\myScript.sql -f 65001

Я пытался импортировать .dump файл из SQLite (UTF-8 по умолчанию), и sqlcmd продолжал бросать ошибку после встречи с первым специальным символом. -f 65001 исправил это для меня.