Megosztás a következőn keresztül:


||= (Összetett hozzárendelés) (Transact-SQL)

A következőkre vonatkozik: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Database a Microsoft Fabricben

Az ||= összetett hozzárendelési operátorral való összefűzéssel összefűzhet egy kifejezést egy karakter- vagy bináris sztringváltozó értékével, majd hozzárendelheti az eredményül kapott kifejezést a változóhoz.

Az ||= operátor ugyanazt a viselkedést támogatja, mint a karakter- és bináris sztringek += operátora .

Transact-SQL szintaxis konvenciók

Syntax

variable ||= expression

Arguments

variable

Karaktertípusú T-SQL-változó: char, varchar, nchar, nvarchar, varchar(max), vagy nvarchar(max), vagy bináris típus: bináris vagy varbinary vagy varbinary(max).

expression

Karakter vagy bináris kifejezés. Ha a kifejezés nem karaktertípusú, akkor a kifejezés típusát implicit módon karaktersztringgé kell konvertálni.

Visszatérési típusok

A karaktersztringek összefűzési operátorának eredményét rendeli hozzá a változóhoz.

  • Ha a változó vagy kifejezés SQL-értékNULL, akkor az összefűzött kifejezés eredménye.NULL
  • Ha a változó nagy objektum (LOB) adattípusú (varchar(max) vagy nvarchar(max)), akkor az eredményül kapott kifejezés varchar(max) vagy nvarchar(max).
  • Ha a változó LOB típusú varbinary(max), akkor az eredményként kapott kifejezés varbinary(max) lesz.
  • Ha a változó nem LOB típusú, akkor a rendszer csonkolja az eredményt a változó deklarált típusának maximális hosszára.

Remarks

Ha a sztringek összefűzésének eredménye meghaladja a 8000 bájtos korlátot, az eredmény csonkolt lesz. Ha azonban az összefűzött sztringek közül legalább egy nagy értéktípus, akkor a csonkolás nem történik meg.

A bináris sztringek és a bináris sztringek közötti karakterek összefűzésekor explicit átalakítást kell végezni a karakteradatokká.

A ||= csövek operátora elérhető a felügyelt Azure SQL-példányban az SQL Server 2025 vagy az Always-up-todátumfrissítési szabályzattal.

Nulla hosszúságú sztringek és karakterek

A ||= (sztringösszefűzés) operátor másképp viselkedik, ha üres, nulla hosszúságú sztringgel működik, mint ha NULLvagy ismeretlen értékekkel működik. A nulla hosszúságú karaktersztring megadható két idézőjelként anélkül, hogy az idézőjeleken belül karakterek kellenek. A nulla hosszúságú bináris sztringek 0x adhatók meg a hexadecimális állandóban megadott bájtértékek nélkül. A nulla hosszúságú sztring összefűzésével mindig összefűzi a két megadott sztringet.

NULL értékek összefűzése

Az NULL értékeken végrehajtott számtani műveletekhez hasonlóan, ha egy ismert értékhez NULL értéket adnak hozzá, az eredmény általában egy NULL érték. A NULL értékkel végrehajtott sztringösszefűzési műveletnek NULL eredményt is létre kell adnia.

A ||= operátor nem tartja be a SET CONCAT_NULL_YIELDS_NULL beállítást, és mindig úgy viselkedik, mintha engedélyezve van az ANSI SQL viselkedése, így NULL, ha bármelyik bemenet NULL. Ez a += és ||= összefűző operátorok viselkedésének elsődleges különbsége. További információ: SET CONCAT_NULL_YIELDS_NULL.

Examples

A. Összefűzés használata összetett hozzárendeléssel sztringekhez

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

Itt van az eredmények összessége.

ab

B. Összefűzés használata összetett hozzárendeléssel bináris adatokhoz

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

Itt van az eredmények összessége.

0x1A2B