Aracılığıyla paylaş


||= (Bileşik atama) (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2025 (17.x) Microsoft Fabric'teAzure SQL VeritabanıAzure SQL Yönetilen Örneği SQL veritabanı

Bileşik ||= atama işleciyle birleştirme, bir ifadeyi bir karakter veya ikili dize değişkeninin değeriyle birleştirmek ve ardından sonuçta elde edilen ifadeyi değişkene atamak için kullanılabilir.

işleci, ||= karakter ve ikili dizeler için += işleciyle aynı davranışı destekler.

Transact-SQL söz dizimi kuralları

Syntax

variable ||= expression

Arguments

variable

Karakter türünde bir T-SQL değişkeni: char, varchar, nchar, nvarchar, varchar(max)veya nvarchar(max)ya da ikili türünde: ikili veya varbinary veya varbinary(max).

expression

Bir karakter veya ikili ifade. İfade karakter türünde değilse, ifadenin türü örtük olarak bir karakter dizesine dönüştürülebilmelidir.

Dönüş türleri

Karakter dizeleri için birleştirme işlecinin sonucunu değişkene atar.

  • Değişken veya ifade bir SQL NULL değeriyse, birleştirilmiş ifadenin sonucu olur NULL.
  • Değişken büyük bir nesne (LOB) veri türündeyse (varchar(max) veya nvarchar(max)), sonuçta elde edilen ifade varchar(max) veya nvarchar(max)şeklindedir.
  • Değişken bir LOB türü varbinary(max) ise, sonuçta elde edilen ifade varbinary(max) şeklindedir.
  • Değişken bir LOB türü değilse sonuç, değişkenin bildirilen türün uzunluk üst sınırına yuvarlanır.

Remarks

Dizelerin birleştirilme sonucu 8.000 bayt sınırını aşarsa, sonuç kesilir. Ancak, birleştirilmiş dizelerden en az biri büyük bir değer türüyse, kesme gerçekleşmez.

İkili dizeleri ve ikili dizeler arasındaki karakterleri birleştirirken karakter verilerine açık dönüştürme kullanılmalıdır.

Kanallar ||= işleci, SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesiyle Azure SQL Yönetilen Örneği'nde kullanılabilir.

Sıfır uzunluklu dizeler ve karakterler

||= (dize birleştirme) işleci boş, sıfır uzunlukta bir dizeyle çalıştığında NULLveya bilinmeyen değerlerle çalıştığından farklı davranır. Sıfır uzunluklu bir karakter dizesi, tırnak işaretleri içinde herhangi bir karakter olmadan iki tek tırnak işareti olarak belirtilebilir. Sıfır uzunluklu ikili dize, onaltılık sabitte belirtilen bayt değerleri olmadan 0x olarak belirtilebilir. Sıfır uzunluklu bir dizeyi birleştirmek her zaman belirtilen iki dizeyi birleştirir.

NULL değerleri birleştirme

NULL değerlerde gerçekleştirilen aritmetik işlemlerde olduğu gibi, bilinen bir değere NULL bir değer eklendiğinde sonuç genellikle NULL bir değerdir. bir NULL değeriyle gerçekleştirilen dize birleştirme işlemi de NULL bir sonuç üretmelidir.

||= işleci SET CONCAT_NULL_YIELDS_NULL seçeneğini kabul etmez ve her zaman ANSI SQL davranışı etkinmiş gibi davranır ve girişlerden herhangi biri NULLise NULL verir. bu, += ve ||= birleştirme işleçleri arasındaki davranıştaki birincil farktır. Daha fazla bilgi için bkz. SET CONCAT_NULL_YIELDS_NULL.

Examples

A. Dizeler için bileşik atama ile birleştirme kullanma

DECLARE @v1 varchar(10) = 'a'
SET @v1 ||= 'b';
SELECT @v1

Sonuç kümesi aşağıdadır.

ab

B. İkili veriler için bileşik atama ile birleştirme kullanma

DECLARE @v2 varbinary(10) = 0x1a;
SET @v2 ||= 0x2b;
select @v2;

Sonuç kümesi aşağıdadır.

0x1A2B