首页 > 解决方案 > '~' 在 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~

标签: sql-servercommand-line-interfacetilde

解决方案


你在一个单引号字符串中。您开始使用'''打开字符串的字符串,然后在其中包含转义的单引号。然后你不断扩大所说的字符串。然后,您再也没有单引号 ( '),因此您永远不会激发文字字符串。

这个动画 gif 也可能有助于进一步解释(这是sqlcmdmssql-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 行有波浪号,因为它们在文字字符串中。


推荐阅读