SQL Server - запуск больших файлов скриптов - PullRequest
64 голосов
/ 21 октября 2008

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

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

Есть идеи, как мне запустить этот SQL-скрипт?

Ответы [ 5 ]

166 голосов
/ 21 октября 2008

используйте инструмент sqlcmd для запуска файла ..

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

В случае, если у вас есть необъяснимая «ошибка скрипта» для больших файлов sql (> 100 МБ), которая включает несколько INSERT, просто замените «INSERT INTO» на «GO INSERT INTO» в вашем файле, что уменьшит размер транзакции. 1006 *

17 голосов
/ 01 июня 2014

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

8 голосов
/ 23 апреля 2015

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

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

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

1 голос
/ 21 октября 2008

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

0 голосов
/ 21 октября 2008

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

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

...