大型SQL文件中的语法错误:如何查找?

时间:2019-06-05 13:38:27

标签: sql-server syntax sqlcmd

我正在通过命令行执行一个很大的(3 GB)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 个答案:

答案 0 :(得分:1)

如果您有大文件且小批处理,则将启动SQL Server Profiler(SSMS菜单工具),选择“有关错误的事件”,然后Profiler捕获有错误的批处理文本。而且您会发现不良批次。profiler window

答案 1 :(得分:0)

我对类似问题的解决方案是分而治之。 在命令边界上将文件分割成两半,即“;” 尝试先执行上半部分,然后再执行第二部分。 在有问题的文件中重复一半,直到干草堆足够小以至于看不到针。

有时候斩波足以使问题消失。