用MSSQL语句体验引号的魔力(mssql 语句有引号)
引号的魔力是这样的——即使只有一个引号,也可以改变Microsoft SQL Server (MSSQL) 中字符串常量的定义。
在Microsoft SQL Server中,字符串字面量是由单引号标记(’)来表示的,表示此字面量值将会被解释成一个字符串。即使没有引号,MSSQL还是会对字面量进行解释:
例如,如果我们执行下面的命令:
SELECT ‘hello world’;
MSSQL服务器将会在结果窗口显示:
hello world
而如果只有一个引号:
SELECT ‘hello world;
MSSQL服务器将会抛出一个错误,因为它的字符串字面量未能正确的被定义:
Msg 105, Level 15, State 1, Line 1
Unclosed quotation mark after the character string ‘hello world’.
因此,可以看到,只有一个引号,也可以改变MSSQL字符串常量的定义,它有时可以很有帮助,也可以很让人头痛,尽量避免这样使用:
SELECT ‘hello’ world’;
这将会遇到同样的错误:
Msg 105, Level 15, State 1, Line 1
Unclosed quotation mark after the character string ‘hello’.
由此可见,MSSQL的引号的魔力的确很强大。以下是示例代码:
–使用单引号标记字符串字面量,如果只有一个引号,MSSQL将抛出一个错误
DECLARE @str1 VARCHAR(50) = ‘Hello World’;
–使用双引号标志字符串字面量,如果只有一个引号,MSSQL将抛出一个错误
DECLARE @str2 VARCHAR(50) = “Hello World”;
–使用三引号标志字符串字面量,如果只有一个引号,MSSQL将不会报错
DECLARE @str3 VARCHAR(50) = “””Hello World”””;
综上所述,只有一个引号也可以改变MSSQL字符串常量的定义,很多情况下,尤其是在使用字符串转换函数的时候,要特别注意引号的使用,误用引号可能会带来很多麻烦。因此,在使用MSSQL时一定要注意引号的魔力!