SQL Server - запуск больших файлов скриптов
-
03-07-2019 - |
Вопрос
У меня есть таблица базы данных на сервере разработки, которая теперь полностью заполнена после того, как я настроил ее запуск с помощью процедуры импорта для файла CSV, содержащего 1,4 миллиона строк.
Я запустил мастер публикации баз данных на столе, и теперь у меня на локальном компьютере находится сценарий SQL объемом 286 МБ. Проблема в том, что я не могу понять, как его запустить. Если я загружаю его в SQL Server Management Studio Express, я получаю окно с предупреждением «Операция не может быть завершена».
Есть идеи, как мне запустить этот сценарий SQL?
Решение
Запуск чего-то такого большого в одной транзакции - не очень хорошая идея. Поэтому я бы рекомендовал разбить файл на более мелкие, более управляемые куски. Р>
Другой вариант - взглянуть на некоторые другие способы прямого импорта данных CSV.
Другие советы
используйте sqlcmd для запуска файла .. р>
sqlcmd -S myServer\instanceName -i C:\myScript.sql
В случае, если у вас есть необъяснимая "ошибка скрипта" " для больших файлов sql (> 100 МБ), которые включают несколько INSERT, просто замените "INSERT INTO" "GO INSERT INTO" в вашем файле, что уменьшит размер транзакции.
Этот инструмент ( Средство запуска файла больших сценариев SQL ) в CodePlex запускает файл сценариев любого размера с журналом и графическим интерфейсом.
Добавление к ответу Гульзара Назима:
Если вы все еще получаете ошибку, попробуйте указать кодовая страница вашего файла SQL с использованием параметра -f
:
sqlcmd -S myServer \ instanceName -d имя-базы-данных -i C: \ myScript.sql -f 65001
Я пытался импортировать файл .dump из SQLite (по умолчанию UTF-8), и sqlcmd продолжал выдавать ошибку после обнаружения первого специального символа. -f 65001
исправил это для меня.
Почему бы просто не использовать DTS для прямого импорта файла CSV?