在 SQL Server 中转义单引号

kag*_*ajm 2 sql-server

我遇到的建议建议 SQL Server 中的单引号应该使用两个单引号进行转义。因此,Ravi's 变成了 Ravi's

另一种选择是使用参数。

在我看到的大多数例子中,这些词通常只有一个引号。大多数情况下它可以工作,但我在创建数据库登录时无法使其工作。

CREATE LOGIN Ng''ang''a  WITH PASSWORD  'Ng''0ng''0' 
Run Code Online (Sandbox Code Playgroud)

我哪里出错了?

小智 5

用户名是一个 ID/QUOTED ID,应该包含在其中,double quotes或者square brackets密码是一个常规字符串,其中单引号需要双引号。换句话说,正确的语法是;

CREATE LOGIN "Ng'ang'a" WITH PASSWORD='Ng''0ng''0'
Run Code Online (Sandbox Code Playgroud)

或者

CREATE LOGIN [Ng'ang'a] WITH PASSWORD='Ng''0ng''0'
Run Code Online (Sandbox Code Playgroud)

  • @Conrad 双引号也很难阅读,并且会混淆不确定它们是字符串还是标识符的新用户。但是首先创建带有撇号的登录并不是一个好主意。 (4认同)