等效于 PostgreSQL 的用于 SQL Server 的带美元引号的字符串常量

Jul*_*ien 5 postgresql sql-server string

在 SQL Server 上是否有与 PostgreSQL 的Dollar-quoted String Constants等价的东西?

我想输入可能包含单引号或双引号的 HTML 字符串文字。

例子:

UPDATE table_name
SET    column_name = $$
  Here's a string that contains "double quotes".
$$
WHERE  condition = true
Run Code Online (Sandbox Code Playgroud)

编辑: 我问这个的原因是因为我想更新一些存储在数据库中的相当大的 HTML“Web 部件”(糟糕!)。因为在工作中我们使用那种 CMS(我不会给你它的名字)。所以我不想每次都逃避我的单引号。这就是为什么我要问这种功能的原因。如果我理解正确,QUOTENAME仍然需要我将单引号加倍。

Eri*_*ing 2

双引号在 SQL Server 中不是问题。

例如:

CREATE TABLE dbo.Dummy
(
    Id INT NOT NULL,
    NameThing VARCHAR(100)
) ;
GO

INSERT dbo.Dummy ( Id, NameThing )
VALUES ( 1, NULL )

UPDATE d
SET d.NameThing = ' "Your String" '
FROM dbo.Dummy AS d
Run Code Online (Sandbox Code Playgroud)

效果很好。您只需小心单引号即可。

UPDATE d
SET d.NameThing = ' "Your String Thong''s Stinky" '
FROM dbo.Dummy AS d
Run Code Online (Sandbox Code Playgroud)

这里我们必须添加一个额外的单引号来将其转义并保持字符串的完整性。或者其他听起来很奇特的东西。

变量赋值的规则也是相同的。

DECLARE @YourString VARCHAR(100) = ' "Your String" '
SELECT @YourString
GO 

DECLARE @YourString VARCHAR(100) = ' "Your String Thong''s Stinky" '
SELECT @YourString
GO 
Run Code Online (Sandbox Code Playgroud)

$$double dollar sign$$我不是一个大的 Postgres 人(对你来说),所以如果我缺少的标识符中有一些古老的颈须魔法,请让我知道。

作为额外的一点,SQL Server 还具有QUOTENAME()函数,但我不确定这是否是等效的行为,甚至对您是否有帮助。

希望这可以帮助!