分享方式:


STRING_ESCAPE (Transact-SQL)

適用於:SQL Server 2016 (13.x) 和更新版本 Azure SQL 資料庫 Azure SQL 受控執行個體

逸出文字中的特殊字元並傳回逸出之字元的文字。 STRING_ESCAPE 是在 SQL Server 2016 中引入的決定性函式。

Transact-SQL 語法慣例

語法

STRING_ESCAPE( text , type )  

引數

text
這是 nvarchar 運算式,表示應該逸出的物件。

type
將套用的逸出規則。 目前支援的值是 'json'

傳回型別

帶有逸出的特殊與控制字元的 nvarchar(max) 文字。 目前,STRING_ESCAPE 只能逸出下表中顯示的 JSON 特殊字元。

特殊字元 編碼的序列
引號 (") \"
反向斜線 (\) \\
斜線 (/) \/
退格鍵 \b
換頁字元 \f
新行 \n
歸位字元 \r
水平 Tab 鍵 \t
控制字元 編碼的序列
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

備註

範例

A. 根據 JSON 格式化規則逸出文字

下列查詢會使用 JSON 規則逸出特殊字元並傳回逸出的文字。

SELECT STRING_ESCAPE('\   /  
\\    "     ', 'json') AS escapedText;  

結果集如下所示。

escapedText  
-------------------------------------------------------------  
\\\t\/\n\\\\\t\"\t

B. 格式化 JSON 物件

下列查詢會從數字和字串變數建立 JSON 文字,並逸出變數中的任何特殊 JSON 字元。

SET @json = FORMATMESSAGE('{ "id": %d,"name": "%s", "surname": "%s" }',
    17, STRING_ESCAPE(@name,'json'), STRING_ESCAPE(@surname,'json') );  

另請參閱