【问题标题】:What does ' ~' mean in sql cli prompt and how do I escape from it?'〜'在sql cli提示符中是什么意思,我该如何逃避它?
【发布时间】:2020-04-22 21:48:24
【问题描述】:

我在 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-server command-line-interface tilde


    【解决方案1】:

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

    这个动画 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 行有波浪号,因为它们在文字字符串中。

    【讨论】:

    • 嗯...我预想你在键盘上的速度更快。 :) +1 特别是视觉效果。
    • 希望我再试一次,这次要更快@JohnCappelletti? ;)
    • @Larnu,如果我正在输入演示,我们仍然会等待答案:-)
    • 哇!感谢您的快速回复和直截了当的回答。非常感激! -OP
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2023-03-28
    • 2017-09-07
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    相关资源
    最近更新 更多