sql-server - '~' 在 sql cli 提示符中是什么意思,我该如何摆脱它?
问题描述
我在 SQL 命令行中玩耍,不小心输入了错误的命令。这样做后,提示符从预期的“>”变为“~”,我无法输入任何新命令或使波浪号消失
这是什么意思,我该如何摆脱它?
我的尝试如下:
select serverproperty'''sdf('''')
4~ go
5~ ;
6~ go
7~ undo
8~ stop
9~ quit
10~ quit
11~
12~
13~
14~
15~ quit
16~ stop
17~ go
18~ :EXIT\
19~ :EXIT
20~ exit
21~ EXIT
22~ EXIT
23~ GO
24~ Q
25~ exit()
26~ :Exit()
27~ :EXIT()
28~ GO
29~ select serverproperty('edition')
30~ go
31~ select serverproperty('edition')
32~ go
33~ ;
34~
解决方案
你在一个单引号字符串中。您开始使用'''
打开字符串的字符串,然后在其中包含转义的单引号。然后你不断扩大所说的字符串。然后,您再也没有单引号 ( '
),因此您永远不会激发文字字符串。
这个动画 gif 也可能有助于进一步解释(这是sqlcmd
但mssql-cli
操作方式相同):
首先,您有以下声明:
1> SELECT 1 AS one,
2> 2 AS two;
3> --Single command, with 2 lines, no quoted string
4> GO
这没有波浪号 ( ~
) 字符,因为您不在字符串文字中。
然后你有第二个语句:
1> SELECT 'Line 1
2~ Line 2
3~ Line 3' AS String;
4> --Single command, 3 lines, 1 string
5> GO
这在第 2 行和第 3 行有波浪号,因为它们在文字字符串中。
推荐阅读
- java - 如何使球衣客户端以 http://ppp.com/yy?zz,aa,bb 格式调用 url
- php - 从数组循环中删除重复数据
- perforce - 为什么我不能删除这个 perforce 更改列表?
- javascript - 用javascript隐藏部分不起作用
- javascript - 如果我在本地声明变量,为什么我的动画不起作用?
- gremlin - Gremlin - 按属性搜索顶点
- azure - 尝试向 Azure 通知中心注册设备时出错
- java - SonarQube 未使用 Java 8 测量代码覆盖率
- r - 创建不同大小的中断
- ios - 运行 expo build:ios 时,即使我可以手动登录,也会获得无效的凭据