powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Sqlcmd для большого файла
4 сообщений из 4, страница 1 из 1
Sqlcmd для большого файла
    #40005179
newbie876454
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При запуске через sqlcmd большого скрипта (3 гб), сгенерированного студией, выдается ошибка:
авторIncorrect syntax near ')'
Профайлером выяснил, что в скрипте все ОК, но sqlcmd обрабатывает только первые 2 гб, а весь дальнейший текст запроса игнорит.
Получилось что-то типа:
Код: sql
1.
insert into table (column) 


а дальнейший текст, где идет "values" - тупо обрезан.
Нигде не встретил такого лимита на странице sqlcmd.
Как же мне выполнить такой большой скрипт?

Разбить его не могу - нужно заскриптовать все объекты и данные в них, избежав всяких проблем с внешними ключами и прочим.
Генерю этот скрипт для того, чтобы перебить базу с sql2016 на старую версию скуля, т.к. бэкап старшей версии не открыть на младшей.
Перебивать потаблично очень запарно, а подобная задача переноса базы периодически возникает.
...
Рейтинг: 0 / 0
Sqlcmd для большого файла
    #40005218
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newbie876454
При запуске через sqlcmd большого скрипта (3 гб), сгенерированного студией, выдается ошибка:
авторIncorrect syntax near ')'

Профайлером выяснил, что в скрипте все ОК, но sqlcmd обрабатывает только первые 2 гб, а весь дальнейший текст запроса игнорит.
Получилось что-то типа:
Код: sql
1.
insert into table (column) 


а дальнейший текст, где идет "values" - тупо обрезан.
Нигде не встретил такого лимита на странице sqlcmd.
Как же мне выполнить такой большой скрипт?

Разбить его не могу - нужно заскриптовать все объекты и данные в них, избежав всяких проблем с внешними ключами и прочим.
Генерю этот скрипт для того, чтобы перебить базу с sql2016 на старую версию скуля, т.к. бэкап старшей версии не открыть на младшей.
Перебивать потаблично очень запарно, а подобная задача переноса базы периодически возникает.

Код: sql
1.
При использовании в виде предложения VALUES инструкции INSERT... VALUES применяется ограничение в размере 1000 строк. Если число строк превышает 1000, возвращается ошибка 10738. Чтобы вставить более 1000 строк, используйте один из следующих методов:



не скриптуйте слишком объемные данные, используйте SSIS /BCP

или у Вас файл вида

Код: sql
1.
2.
3.
4.
insert into tbl values (1)
insert into tbl values (2)
....
insert into tbl values (n)


?
...
Рейтинг: 0 / 0
Sqlcmd для большого файла
    #40005280
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newbie876454,

возможно, ограничения размера кэша инструкций.
Можно попробовать вставлять по ходу выполнения
:RESET
...
Рейтинг: 0 / 0
Sqlcmd для большого файла
    #40005355
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newbie876454
но sqlcmd обрабатывает только первые 2 гб, а весь дальнейший текст запроса игнорит.


2 Гб штатное ограничение varchar(max). MS SQL, просто, не может обрабатывать текст большей длины.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Sqlcmd для большого файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]