Из командной строки запустите sqlcmd
:
sqlcmd -S <server> -i C:\<your file here>.sql
Просто замените его <server>
на местоположение вашего блока SQL и <your file here>
на имя вашего скрипта. Не забудьте, если вы используете экземпляр SQL, синтаксис:
sqlcmd -S <server>\instance.
Вот список всех аргументов, которые вы можете передать sqlcmd:
Sqlcmd [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L[c] list servers[clean output]]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-m errorlevel] [-V severitylevel] [-W remove trailing spaces]
[-u unicode output] [-r[0|1] msgs to stderr]
[-i inputfile] [-o outputfile] [-z new password]
[-f | i:[,o:]] [-Z new password and exit]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting]
[-b On error batch abort]
[-v var = "value"...] [-A dedicated admin connection]
[-X[1] disable commands, startup script, environment variables [and exit]]
[-x disable variable substitution]
[-? show syntax summary]
INSERT INTO table_name (text) VALUES ('some text bla bla 'bla' text')
. У меня ошибка с кавычками. Так что я должен использовать (какой параметр) для обработки этой ошибки? СпасибоУ меня была точно такая же проблема, и я некоторое время боролся, а потом наконец нашел решение, которое заключается в установке
-a
параметра в значениеsqlcmd
, чтобы изменить размер пакета по умолчанию:источник
sqlcmd -S <Servername> -U <Username> -P <password> -d <Databasename> -i <filename>
Вы также можете использовать этот инструмент. Это действительно полезно.
BigSqlRunner
источник
Принять командную строку с правами администратора
Перейдите в каталог, где хранится файл .sql
Выполните следующую команду
sqlcmd -S 'your server name' -U 'user name of server' -P 'password of server' -d 'db name'-i script.sql
источник
Я использую MSSQL Express 2014, и ни одно из решений не помогло мне. Все они просто разбили SQL. Так как мне нужно было запустить только один сценарий со множеством простых операторов вставки, я обошел его, написав небольшое консольное приложение в качестве крайней меры:
источник
Запустите его из командной строки с помощью osql, смотрите здесь:
http://metrix.fcny.org/wiki/display/dev/How+to+execute+a+.SQL+script+using+OSQL
источник
sqlcmd
заменяетosql
.У меня была похожая проблема. Мой файл со сценарием sql был более 150 МБ (почти 900 КБ очень простых INSERT ). Я использовал решение, рекомендованное Такуро (в качестве ответа в этом вопросе), но я все еще получал сообщение об ошибке, в котором говорилось, что недостаточно памяти («Недостаточно системной памяти в внутреннем пуле ресурсов для выполнения этого запроса»).
Мне помогло то, что я ставлю команду GO после каждых 50 тыс. INSERT .
(Это не относится непосредственно к вопросу (размер файла), но я считаю, что это решает проблему, которая косвенно связана с большим размером самого сценария SQL. В моем случае много команд вставки)
источник
Ваш вопрос очень похож на этот
Вы можете сохранить свой файл / скрипт как .txt или .sql и запустить его из Sql Server Management Studio (я думаю, что меню Open / Query, а затем просто выполнить запрос в интерфейсе SSMS). Возможно, вам придется обновить первую строку, указав базу данных, которая будет создана или выбрана на вашем локальном компьютере.
Если вам приходится выполнять эту передачу данных очень часто, вы можете перейти к репликации. В зависимости от ваших потребностей, репликация снимков может быть в порядке. Если вам нужно синхронизировать данные между двумя серверами, вы можете использовать более сложную модель, такую как репликация слиянием.
РЕДАКТИРОВАТЬ: я не заметил, что у вас были проблемы с SSMS, связанные с размером файла. Затем вы можете перейти к командной строке, предложенной другими, репликации моментальных снимков (опубликовать на главном сервере, подписаться на локальный, реплицировать, затем отписаться) или даже выполнить резервное копирование / восстановление.
источник
Тогда вам может быть проще просто DTS (или SSIS, если это SQL Server 2005+) передавать данные, если два сервера находятся в одной сети.
Если два сервера не находятся в одной сети, вы можете сделать резервную копию исходной базы данных и восстановить ее в новой базе данных на конечном сервере. Затем вы можете использовать DTS / SSIS или даже просто
INSERT INTO SELECT
, чтобы перенести две таблицы в базу данных назначения.источник
Надеюсь, это поможет вам!
источник
Я столкнулся с той же проблемой и потратил целый день, чтобы найти выход, но это решается созданием копии файла .sql, изменением расширения на файл .txt и открытием файла .txt в браузере Chrome. Я видел магию и файл открывается в браузере.
Спасибо и всего наилучшего,
источник