如何从C#准确处理SQL的批处理分隔符

Sam*_*ron 6 c# sql t-sql parsing

对于Data Explorer,我想添加对Batch分隔符的支持.

例如,如果用户键入:

 
select 'GO' go select 1 as go 
Go 
select 100

我想返回三个结果集.

很清楚我需要一些解析器,我希望这是一个已解决的问题,我可以插入它.(编写一个完整的T-SQL解析器不是我想做的事情)

什么组件/演示代码可以实现将这批产品分成3个部分?

小智 2

我并不经常这么说,但在这种情况下,我肯定会主张弯曲用户输入以符合计算机规则,而不是试图解决让计算机理解大量不同的用户输入的问题

施加一个简单的规则:单词“go”必须出现在自己的行上才能被解释为继续的命令

如果您的用户不能遵守这样的规则,他们真的应该参与编写 SQL 查询这一更为复杂的任务吗?