Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2025 (17.x)
Azure SQL Database Azure SQL
Managed Instance
SQL Database v Microsoft Fabric
Zřetězení ||= s operátorem složeného přiřazení lze použít ke zřetězení výrazu s hodnotou znaku nebo binární proměnné řetězce a následnému přiřazení výsledného výrazu k proměnné.
Operátor ||= podporuje stejné chování jako operátor += pro znakové a binární řetězce.
Syntax
variable ||= expression
Arguments
variable
Proměnná T-SQL typu znaku: char, varchar, nchar, nvarchar, varchar(max) nebo nvarchar(max) nebo binárního typu: binární nebo varbinární nebo varbinary(max).
expression
Znak nebo binární výraz Pokud výraz není typu znaku, musí být typ výrazu schopen implicitně převést na řetězec znaků.
Návratové typy
Přiřadí výsledek operátoru zřetězení pro řetězce znaků proměnné.
- Pokud je proměnná nebo výraz hodnotou SQL
NULL, výsledek zřetězeného výrazu jeNULL. - Pokud je proměnná datového typu velkého objektu (LOB) (varchar(max) nebo nvarchar(max)), výsledný výraz je varchar(max) nebo nvarchar(max).
- Pokud je proměnná typu LOB varbinary(max),je výsledný výraz varbinary(max).
- Pokud proměnná není typem LOB, výsledek se zkrátí na maximální délku deklarovaného typu proměnné.
Remarks
Pokud výsledek zřetězení řetězců překročí limit 8 000 bajtů, výsledek se zkrátí. Pokud je ale alespoň jeden z řetězců zřetězený velký typ hodnoty, nedojde ke zkrácení.
Explicitní převod na data znaků se musí použít při zřetězení binárních řetězců a všech znaků mezi binárními řetězci.
Operátor ||= kanálů je k dispozici ve službě Azure SQL Managed Instance se zásadami aktualizaceSQL Serveru 2025 nebo Always-up-to-date.
Řetězce a znaky nulové délky
Operátor ||= (zřetězení řetězců) se chová odlišně, když pracuje s prázdným řetězcem nulové délky, než když pracuje s NULLnebo neznámými hodnotami. Řetězec znaku nulové délky lze zadat jako dvě jednoduché uvozovky bez jakýchkoli znaků uvnitř uvozovek. Binární řetězec nulové délky lze zadat jako 0x bez jakýchkoli hodnot bajtů zadaných v šestnáctkové konstantě. Zřetězení řetězce nulové délky vždy zřetězí dva zadané řetězce.
Zřetězení hodnot NULL
Stejně jako u aritmetických operací, které se provádějí s NULL hodnotami, při přidání NULL hodnoty ke známé hodnotě je výsledkem obvykle NULL hodnota. Operace zřetězení řetězců provedená s hodnotou NULL by měla také vytvořit NULL výsledek.
Operátor ||= neresektuje možnost SET CONCAT_NULL_YIELDS_NULL a vždy se chová, jako by bylo povolené chování ANSI SQL, a poskytuje NULL, pokud je některý ze vstupů NULL. Toto je hlavní rozdíl v chování mezi operátory += a ||= zřetězení. Další informace naleznete v tématu SET CONCAT_NULL_YIELDS_NULL.
Examples
A. Použití zřetězení se složeným přiřazením pro řetězce
DECLARE @v1 varchar(10) = 'a'
SET @v1 ||= 'b';
SELECT @v1
Tady je soubor výsledků.
ab
B. Použití zřetězení se složeným přiřazením pro binární data
DECLARE @v2 varbinary(10) = 0x1a;
SET @v2 ||= 0x2b;
select @v2;
Tady je soubor výsledků.
0x1A2B
Související obsah
- || (Zřetězení řetězců) (Transact-SQL)
- + (zřetězení řetězců) (Transact-SQL)
- += (přiřazení zřetězení řetězců) (Transact-SQL)
- ALTER DATABASE (Transact-SQL)
- CAST a CONVERT (Transact-SQL)
- převodu datových typů (databázový stroj)
- Datové typy (Transact-SQL)
- Výrazy (Transact-SQL)
- Předdefinované funkce (Transact-SQL)
- Operátory (Transact-SQL)
- SELECT (Transact-SQL)
- Příkazy SET (Transact-SQL)