+= (Penetapan penggalian string) (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

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

Konvensi sintaks transact-SQL

Syntax

expression += expression

Arguments

expression

Ekspresi valid apa pun dari salah satu jenis data karakter.

Tipe pengembalian

Mengembalikan jenis data yang ditentukan untuk variabel.

Remarks

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

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

SELECT 'Adventure' += 'Works'

Examples

A. 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 set hasilnya.

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

SET @y = '';
SET @y = @x + @z + @y;
SELECT LEN(@y) AS Y; -- 8000
GO

Berikut set hasilnya.

Y
-------
8000

Y
-------
12000

Y
-------
8000

Y
-------
8000