Синтаксическая ошибка в огромном файле SQL: как его найти? - PullRequest
1 голос
/ 05 июня 2019

Я выполняю очень большой (3 гигабайта) файл SQL через командную строку.Он слишком велик для открытия в SQL Server Management Studio.Через несколько минут инструмент возвращает синтаксическую ошибку.

Msg "102", Level "15", State "1", Server "XYZ\XYZ", Line 20 "Unclosed
quotation mark after the character string "text3
"."

Обратите внимание на разрыв строки после "text3!

Мой вопрос: Как мне найтиместонахождение ошибки?

Мне нужно как-то найти большой файл.Предпочтительно с vim.Тем не менее, я понятия не имею, как искать эту ошибку.Текст text3 появляется много раз в файле.Как я уже сказал, я не могу открыть файл в SQL Server Management Studio.Ошибка также отсутствует в строке 20. Так что я не уверен, что вообще означает Line 20 в сообщении об ошибке?Может быть, я смогу как-нибудь использовать этот разрыв строки.

Ответы [ 2 ]

1 голос
/ 05 июня 2019

если у вас большой файл с небольшими партиями, вы запустите SQL Server Profiler (Инструменты меню SSMS), выберите События об ошибках, и Профилировщик перехватит текст пакета с ошибкой.И вы можете найти плохую партию. profiler window

0 голосов
/ 05 июня 2019

Мое решение подобных проблем - разделяй и властвуй.Разбейте файл на две части на границе команды, т. Е. ';'Попробуйте выполнить первую половину, затем вторую.Повторите деление пополам в файле с нарушением, пока стог сена не станет достаточно маленьким, чтобы увидеть иглу.

Иногда измельчения достаточно, чтобы устранить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...