+= (Penetapan Penggalian String) (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Menggabungkan dua string dan mengatur string ke hasil operasi. Misalnya, jika variabel @x sama dengan 'Adventure', maka @x += 'Works' mengambil nilai @xasli , menambahkan 'Works' ke string, dan diatur @x ke nilai baru 'AdventureWorks'.

Konvensi sintaks transact-SQL

Sintaksis

expression += expression  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

expression
Adalah ekspresi valid dari salah satu jenis data karakter.

Jenis Hasil

Mengembalikan jenis data yang ditentukan untuk variabel.

Keterangan

SET @v1 += 'expression' setara dengan SET @v1 = @v1 + ('expression'). Selain itu, SET @v1 + @v4@v2 = @v3 + setara dengan SET @v1 = (@v2 + . @v3) + @v4

Operator += tidak dapat digunakan tanpa variabel. Misalnya, kode berikut akan menyebabkan kesalahan:

SELECT 'Adventure' += 'Works'  

Contoh

J. Penggalian menggunakan operator +=

Contoh berikut menggabungkan menggunakan += operator.

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

Berikut adalah hasil yang ditetapkan.

This is the original. More text.

B. Urutan evaluasi saat menggabungkan menggunakan operator +=

Contoh berikut menggabungkan beberapa string untuk membentuk satu string panjang lalu mencoba menghitung panjang string akhir. Contoh ini menunjukkan urutan evaluasi dan aturan pemotongan, saat menggunakan operator perangkaian.

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

Berikut adalah hasil yang ditetapkan.

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

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

Lihat Juga

Operator (Transact-SQL)
+= (Tambahkan Penugasan) (Transact-SQL)
+ (Penggalian String) (Transact-SQL)