【发布时间】:2015-12-29 18:24:44
【问题描述】:
我有一个包含several SQL Commands 的脚本。由于我需要一一拆分命令,我使用go 字来创建批处理。
Dim script = "SELECT * FROM TABLEX; " _
& "go " _
& "----- some coment that includes go word like ago " _
& "INSERT INTO TABLEX .... ;" _
& "go "
For Each sqlBatch As String In script.Split(New String() {"GO", "Go", "go"}, StringSplitOptions.RemoveEmptyEntries)
'use sqlBatch
Next
如果脚本有 cmets 它工作正常,但是当它碰巧有 go 像 "ago" 这样的词时,指令会破坏字符串并且 sql 抛出错误,例如在示例中我会得到:
SELECT * FROM TABLEX;
----- some coment that includes
word like a
INSERT INTO TABLEX .... ;
这显然不是我想要的,我如何告诉使用 Split 来避免 cmets 并且不要在这些包含 go 单词的情况下失败?
所以我明白了:
SELECT * FROM TABLEX;
INSERT INTO TABLEX .... ;
【问题讨论】:
-
最好的方法是使用比“go”词“更强”的东西来分割你的字符串。喜欢“|去|” (“go”被竖线字符包围)。
-
您对如何创建此脚本有任何控制权吗?
-
more less,我可以告诉人们添加或删除一些东西,但是脚本可能> 100句
标签: sql-server vb.net string split