分享方式:


+= (字串串連指派) (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲

串連兩個字串,並將該字串設定為運算結果。 例如,如果變數 @x 等於 'Adventure',則 @x += 'Works' 會採用 @x 的原始值、將 'Works' 加入到字串,然後將 @x 設定為 'AdventureWorks' 這個新值。

Transact-SQL 語法慣例

語法

expression += expression  

引數

expression
這是任何字元資料類型的任何有效運算式

結果類型

傳回針對變數所定義的資料類型。

備註

SET @v1 += 'expression' 相當於 SET @v1 = @v1 + ('expression')。 此外,SET @v1 = @v2 + @v3 + @v4 相當於 SET @v1 = (@v2 + @v3) + @v4。

+= 運算子無法在沒有變數的情況下使用。 例如,下列程式碼將會造成錯誤:

SELECT 'Adventure' += 'Works'  

範例

A. 使用 += 運算子的串連

下列範例會使用 += 運算子串連。

DECLARE @v1 VARCHAR(40);  
SET @v1 = 'This is the original.';  
SET @v1 += ' More text.';  
PRINT @v1;  

結果集如下所示。

This is the original. More text.

B. 使用 += 運算子進行串連時的評估順序

下列範例會串連多個字串來形成一個長字串,然後嘗試計算最終字串的長度。 此範例示範使用串連運算子時的評估順序和截斷規則。

DECLARE @x VARCHAR(4000) = REPLICATE('x', 4000)
DECLARE @z VARCHAR(8000) = REPLICATE('z',8000)
DECLARE @y VARCHAR(max);
 
SET @y = '';
SET @y += @x + @z;
SELECT LEN(@y) AS Y; -- 8000
 
SET @y = '';
SET @y = @y + @x + @z;
SELECT LEN(@y) AS Y; -- 12000
 
SET @y = '';
SET @y = @y +(@x + @z);
SELECT LEN(@y) AS Y; -- 8000
-- or
SET @y = '';
SET @y = @x + @z + @y;
SELECT LEN(@y) AS Y; -- 8000
GO

結果集如下所示。

Y       
------- 
8000 
 
(1 row(s) affected) 
 
   
Y       
------- 
12000 
 
(1 row(s) affected) 

Y       
------- 
8000 
 
(1 row(s) affected) 
 
Y       
------- 
8000 
 
(1 row(s) affected)

另請參閱

運算子 (Transact-SQL)
+= (加法指派) (Transact-SQL)
+ (字串串連) (Transact-SQL)