||= (Atribuição composta) (Transact-SQL)
Aplica-se a: Banco de Dados SQL do Azure
A ||=
concatenação com operador de atribuição composto pode ser usada para concatenar uma expressão com o valor de um caractere ou variável de cadeia de caracteres binária e, em seguida, atribuir a expressão resultante à variável.
O ||=
operador dá suporte ao mesmo comportamento que o operador += para caracteres e cadeias de caracteres binárias.
Convenções de sintaxe de Transact-SQL
Sintaxe
variable ||= expression
Argumentos
variable
Uma variável T-SQL do tipo de caractere: char, varchar, nchar, nvarchar, varchar(max) ou nvarchar(max), ou do tipo binário: binary ou varbinary ou varbinary(max).
expressão
Um caractere ou expressão binária. Se a expressão não for do tipo de caractere, o tipo da expressão deverá ser capaz de ser convertido implicitamente em uma cadeia de caracteres.
Tipos de retorno
Atribui o resultado do operador de concatenação para cadeias de caracteres à variável.
- Se a variável ou expressão for um valor SQL
NULL
, o resultado da expressão concatenada seráNULL
. - Se a variável for de um tipo de dados LOB (objeto grande) (varchar(max) ou nvarchar(max)), a expressão resultante será de varchar(max) ou nvarchar(max).
- Se a variável for de um tipo LOB varbinary(max), a expressão resultante será de varbinary(max).
- Se a variável não for um tipo LOB, o resultado será truncado para o comprimento máximo do tipo declarado da variável.
Comentários
Se o resultado da concatenação de cadeias de caracteres exceder o limite de 8.000 bytes, o resultado será truncado. No entanto, se pelo menos uma das cadeias de caracteres concatenadas for um tipo de valor grande, o truncamento não ocorrerá.
Uma conversão explícita em dados de caractere deve ser usada ao concatenar cadeias binárias e quaisquer caracteres entre as cadeias binárias.
Cadeias de caracteres e caracteres de comprimento zero
O ||=
operador (concatenação de cadeia de caracteres) se comporta de maneira diferente quando trabalha com uma cadeia de caracteres vazia de comprimento zero do que quando trabalha com NULL
valores desconhecidos ou desconhecidos. Uma cadeia de caracteres de comprimento zero pode ser especificada como duas aspas simples sem nenhum caractere dentro das aspas. Uma cadeia de caracteres binária de comprimento zero pode ser especificada como 0x
sem nenhum valor de byte especificado na constante hexadecimal. A concatenação de uma cadeia de caracteres de comprimento zero sempre concatena as duas cadeias de caracteres especificadas.
Concatenação de valores NULL
Assim como acontece com as operações aritméticas executadas em NULL
valores, quando um NULL
valor é adicionado a um valor conhecido, o resultado normalmente é um NULL
valor. Uma operação de concatenação de cadeia de caracteres executada com um NULL
valor também deve produzir um NULL
resultado.
O ||=
operador não honra a SET CONCAT_NULL_YIELDS_NULL
opção e sempre se comporta como se o comportamento ANSI SQL estivesse habilitado, produzindo NULL
se qualquer uma das entradas for NULL
. Essa é a principal diferença de comportamento entre os +=
operadores de concatenação e ||=
. Para saber mais, confira SET CONCAT_NULL_YIELDS_NULL.
Exemplos
R. Usar concatenação com atribuição composta para cadeias de caracteres
DECLARE @v1 varchar(10) = 'a'
SET @v1 ||= 'b';
SELECT @v1
Veja a seguir o conjunto de resultados.
ab
B. Usar concatenação com atribuição composta para dados binários
DECLARE @v2 varbinary(10) = 0x1a;
SET @v2 ||= 0x2b;
select @v2;
Veja a seguir o conjunto de resultados.
0x1A2B
Conteúdo relacionado
- || (Concatenação de strings) (Transact-SQL)
- + (Concatenação de cadeia de caracteres) (Transact-SQL)
- += (Atribuição de concatenação de cadeia de caracteres) (Transact-SQL)
- ALTER DATABASE (Transact-SQL)
- CAST e CONVERT (Transact-SQL)
- Conversão de tipo de dados (Mecanismo de Banco de Dados)
- Tipos de dados (Transact-SQL)
- Expressões (Transact-SQL)
- Funções internas (Transact-SQL)
- Operadores (Transact-SQL)
- SELECT (Transact-SQL)
- Instruções SET (Transact-SQL)