Condividi tramite


||= (assegnazione composta) (Transact-SQL)

Si applica a: database SQL di Azure

La ||= concatenazione con l'operatore di assegnazione composta può essere usata per concatenare un'espressione con il valore di una variabile di stringa binaria o carattere e quindi assegnare l'espressione risultante alla variabile.

L'operatore ||= supporta lo stesso comportamento dell'operatore += per stringhe di caratteri e binari.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

variable ||= expression

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

variable

Variabile T-SQL di tipo carattere: char, varchar, nchar, nvarchar, varchar(max)o nvarchar(max)o di tipo binario: binary o varbinary(max).

expression

Un carattere o un'espressione binaria. Se l'espressione non è del tipo di carattere, il tipo dell'espressione deve essere in grado di essere convertito in modo implicito in una stringa di caratteri.

Tipi restituiti

Assegna il risultato dell'operatore di concatenazione per le stringhe di caratteri alla variabile.

  • Se la variabile o l'espressione è un valore SQL NULL , il risultato dell'espressione concatenata è NULL.
  • Se la variabile è di un tipo di dati LOB (Large Object) (varchar(max) o nvarchar(max),l'espressione risultante è varchar (max) o nvarchar(max).
  • Se la variabile è di tipo LOB varbinary(max),l'espressione risultante è di varbinary(max).
  • Se la variabile non è un tipo LOB, il risultato viene troncato alla lunghezza massima del tipo dichiarato della variabile.

Osservazioni:

Se il risultato della concatenazione di stringhe supera il limite di 8.000 byte, il risultato viene troncato. Tuttavia, se almeno una delle stringhe concatenate è un tipo valore di grandi dimensioni, il troncamento non si verifica.

Per la concatenazione di stringhe binarie e dei caratteri tra le stringhe binarie, è necessario eseguire una conversione esplicita in dati di tipo carattere.

Stringhe e caratteri di lunghezza zero

L'operatore ||= (concatenazione di stringhe) si comporta in modo diverso quando funziona con una stringa vuota e di lunghezza zero rispetto a quando funziona con NULLo valori sconosciuti. Una stringa di caratteri di lunghezza zero può essere specificata con due virgolette singole senza alcun carattere all'interno delle virgolette. Una stringa binaria di lunghezza zero può essere specificata come 0x senza valori di byte specificati nella costante esadecimale. La concatenazione di una stringa di valore zero comporta sempre la concatenazione delle due stringhe specificate.

Concatenazione di valori NULL

Come per le operazioni aritmetiche eseguite sui NULL valori, quando un NULL valore viene aggiunto a un valore noto, il risultato è in genere un NULL valore. Un'operazione di concatenazione di stringhe eseguita con un NULL valore deve produrre anche un NULL risultato.

L'operatore ||= non rispetta l'opzione SET CONCAT_NULL_YIELDS_NULL e si comporta sempre come se il comportamento SQL ANSI sia abilitato, producendo NULL se uno degli input è NULL. Questa è la differenza principale nel comportamento tra gli += operatori di concatenazione e ||= . Per altre informazioni, vedere SET CONCAT_NULL_YIELDS_NULL.

Esempi

R. Usare la concatenazione con l'assegnazione composta per le stringhe

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

Questo è il set di risultati.

ab

B. Usare la concatenazione con l'assegnazione composta per i dati binari

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

Questo è il set di risultati.

0x1A2B