||= (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
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 NULL
o 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
Il set di risultati è il seguente.
ab
B. Usare la concatenazione con l'assegnazione composta per i dati binari
DECLARE @v2 varbinary(10) = 0x1a;
SET @v2 ||= 0x2b;
select @v2;
Il set di risultati è il seguente.
0x1A2B
Contenuto correlato
- || (Concatenazione di stringhe) (Transact-SQL)
- + (concatenazione di stringhe) (Transact-SQL)
- += (assegnazione di concatenazione di stringhe) (Transact-SQL)
- ALTER DATABASE (Transact-SQL)
- CAST e CONVERT (Transact-SQL)
- Conversione dei tipi di dati (motore di database)
- Tipi di dati (Transact-SQL)
- Espressioni (Transact-SQL)
- Funzioni predefinite (Transact-SQL)
- Operatori (Transact-SQL)
- SELECT (Transact-SQL)
- Istruzioni SET (Transact-SQL)