用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时一定要注意引号的魔力!


数据运维技术 » 用MSSQL语句体验引号的魔力(mssql 语句有引号)