Delen via


||= (samengestelde toewijzing) (Transact-SQL)

Van toepassing op: SQL Server 2025 (17.x) Preview AzureSQL Database Azure SQL Managed InstanceSQL-databasein Microsoft Fabric Preview

De ||= samenvoeging met samengestelde toewijzingsoperator kan worden gebruikt om een expressie samen te voegen met de waarde van een teken- of binaire tekenreeksvariabele en vervolgens de resulterende expressie toe te wijzen aan de variabele.

De ||= operator ondersteunt hetzelfde gedrag als de operator += voor teken- en binaire tekenreeksen.

Transact-SQL syntaxis-conventies

Syntax

variable ||= expression

Arguments

variable

Een T-SQL-variabele van het tekentype: char, varchar, nchar, nvarchar, varchar(max), of nvarchar(max), of van binair type: binair of varbinair of varbinary(max).

expression

Een teken of binaire expressie. Als de expressie niet van het tekentype is, moet het type expressie impliciet kunnen worden geconverteerd naar een tekenreeks.

Retourtypen

Hiermee wordt het resultaat van de samenvoegingsoperator voor tekenreeksen aan de variabele toegewezen.

  • Als de variabele of expressie een SQL-waarde NULL is, is NULLhet resultaat van de samengevoegde expressie.
  • Als de variabele van een groot objectgegevenstype (LOB) is (varchar(max) of nvarchar(max)), is de resulterende expressie varchar(max) of nvarchar(max).
  • Als de variabele van een LOB-type varbinary(max) is, is de resulterende expressie varbinary(max).
  • Als de variabele geen LOB-type is, wordt het resultaat afgekapt tot de maximale lengte van het gedeclareerde type van de variabele.

Remarks

Als het resultaat van de samenvoeging van tekenreeksen de limiet van 8000 bytes overschrijdt, wordt het resultaat afgekapt. Als echter ten minste één van de tekenreeksen die zijn samengevoegd een groot waardetype is, wordt afkapping niet uitgevoerd.

Er moet een expliciete conversie naar tekengegevens worden gebruikt bij het samenvoegen van binaire tekenreeksen en eventuele tekens tussen de binaire tekenreeksen.

De ||= pipes-operator is beschikbaar in Azure SQL Managed Instance met het sql Server 2025- of Always-up-to-dateupdate-beleid.

Tekenreeksen en tekens met lengte nul

De operator ||= (tekenreekssamenvoeging) gedraagt zich anders wanneer deze werkt met een lege tekenreeks met de lengte nul dan wanneer deze werkt met NULLof onbekende waarden. Een tekenreeks met lengte nul kan worden opgegeven als twee enkele aanhalingstekens zonder tekens binnen de aanhalingstekens. Een binaire tekenreeks met de lengte nul kan worden opgegeven als 0x zonder bytewaarden die zijn opgegeven in de hexadecimale constante. Als u een tekenreeks met lengte nul samenvoegt, worden altijd de twee opgegeven tekenreeksen samengevoegd.

Samenvoeging van NULL-waarden

Net als bij rekenkundige bewerkingen die worden uitgevoerd op NULL waarden, is het resultaat meestal een NULL waarde wanneer een NULL waarde wordt toegevoegd aan een bekende waarde. Een tekenreekssamenvoegingsbewerking die wordt uitgevoerd met een NULL-waarde, moet ook een NULL resultaat opleveren.

De ||=-operator houdt niet aan de SET CONCAT_NULL_YIELDS_NULL optie en gedraagt zich altijd alsof het ANSI SQL-gedrag is ingeschakeld, wat NULL oplevert als een van de invoergegevens is NULL. Dit is het belangrijkste verschil in gedrag tussen de operatoren voor += en ||= samenvoeging. Zie SET CONCAT_NULL_YIELDS_NULLvoor meer informatie.

Examples

A. Samenvoeging gebruiken met samengestelde toewijzing voor tekenreeksen

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

Hier is het resultatenoverzicht.

ab

B. Samenvoeging gebruiken met samengestelde toewijzing voor binaire gegevens

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

Hier is het resultatenoverzicht.

0x1A2B