|
6
|
| Sam Saffron James Allen · 技术社区 · 16 年前 |
|
|
1
2
我不是经常这么说,但我绝对主张弯曲用户输入以符合计算机规则,而不是试图解决让计算机理解大量变化的用户输入的问题。 实施一个简单的规则: “go”一词必须出现在它自己的行中,以便被解释为继续执行的命令。 如果您的用户不能遵守这样的规则,那么他们真的应该参与编写SQL查询这项更复杂的任务吗? |
|
|
2
2
我在寻找同样问题的解决方案,但没有找到合适的解决方案(在我的案例中,使用SMO是不可接受的)。所以,我必须编写自己的解析器。这里是:
它正确地处理字符串、标识符和注释中的“go”。也许不太理想,但是已经成功地测试了数百个不同的.sql脚本。 然后,例如:
我希望它能帮助别人。 |
|
|
3
0
我不知道现有的解决方案(尽管我同意可能有一个)。我只是想指出,您可能不需要编写完整的T-SQL解析器:您真正需要找到的只是引号之外的单词“go”。也就是说,寻找
|
|
|
4
0
在反复读了几遍之后,这是一个非常难看的问题。看看脚本的第一行,实际上 没有命令分隔符 (分号或换行符)。我认为你别无选择,只能真正分析整个过程。 但是,在这条线上的某个地方,无论如何,这必须被分析,对吗?也许你可以在里面做点什么或者用 现有的 解析器。根据您对它的访问量,您可以:
|
|
|
5
0
您可以很容易地为打开的sqlconnection更改当前数据库:
一个例子:
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |