巨大 SQL 文件中的语法错误:如何找到它?

Syntax error in huge SQL file: How to find it?

我正在通过命令行执行一个非常大(3 GB)的 SQL 文件。它太大,无法在 SQL Server Management Studio 中打开。几分钟后,工具 returns 出现语法错误。

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 是什么意思?也许我可以以某种方式利用那个换行符。

我对类似问题的解决方案是分而治之。 在命令边框上将文件分成两半,即“;” 尝试执行前半部分,然后是下半部分。 在有问题的文件中重复减半,直到大海捞针小到可以看到针为止。

有时斩波足以让问题消失。

如果您有小批量的大文件,您将启动 SQL Server Profiler(SSMS 菜单工具)选择关于错误的事件和 Profiler 捕获有错误的批处理文本。而且你可以找到坏批次。