||= (asignación compuesta) (Transact-SQL)
Se aplica a: Azure SQL Database
La ||=
concatenación con el operador de asignación compuesta se puede usar para concatenar una expresión con el valor de un carácter o una variable de cadena binaria y, a continuación, asignar la expresión resultante a la variable.
El ||=
operador admite el mismo comportamiento que el operador += para las cadenas binarias y de caracteres.
Convenciones de sintaxis de Transact-SQL
Sintaxis
variable ||= expression
Argumentos
variable
Variable T-SQL de tipo de carácter: char, varchar, nchar, nvarchar, varchar(max)o nvarchar(max), o de tipo binario: binary o varbinary(max).
expression
Carácter o expresión binaria. Si la expresión no es del tipo de carácter, el tipo de la expresión debe poder convertirse implícitamente en una cadena de caracteres.
Tipos de valores devueltos
Asigna el resultado del operador de concatenación para las cadenas de caracteres a la variable .
- Si la variable o expresión es un valor SQL
NULL
, el resultado de la expresión concatenada esNULL
. - Si la variable es de un tipo de datos de objeto grande (LOB) (varchar(max) o nvarchar(max)), la expresión resultante es de varchar(max) o nvarchar(max).
- Si la variable es de un tipo LOB varbinary(max), la expresión resultante es de varbinary(max).
- Si la variable no es un tipo LOB, el resultado se trunca hasta la longitud máxima del tipo declarado de la variable.
Comentarios
Si el resultado de la concatenación de cadenas es superior al límite de 8.000 bytes, el resultado se trunca. Sin embargo, si al menos una de las cadenas concatenadas es un tipo de valor grande, no se produce el truncamiento.
Debe utilizarse una conversión explícita a datos caracteres cuando se concatenan cadenas binarias y cualesquiera caracteres entre las cadenas binarias.
Cadenas y caracteres de longitud cero
El ||=
operador (concatenación de cadenas) se comporta de forma diferente cuando funciona con una cadena vacía de longitud cero que cuando funciona con NULL
valores , o desconocidos. Se puede especificar una cadena de caracteres de longitud cero como dos comillas simples sin caracteres incluidos entre las comillas. Se puede especificar una cadena binaria de longitud cero como 0x
sin ningún valor de byte especificado en la constante hexadecimal. La concatenación de una cadena de longitud cero siempre concatena las dos cadenas especificadas.
Concatenación de valores NULL
Al igual que con las operaciones aritméticas que se realizan en NULL
valores, cuando se agrega un NULL
valor a un valor conocido, el resultado suele ser un NULL
valor. Una operación de concatenación de cadenas realizada con un NULL
valor también debe generar un NULL
resultado.
El ||=
operador no respeta la SET CONCAT_NULL_YIELDS_NULL
opción y siempre se comporta como si el comportamiento de ANSI SQL está habilitado, lo que produce NULL
si alguna de las entradas es NULL
. Esta es la diferencia principal en el comportamiento entre los operadores de +=
concatenación y ||=
. Para más información, consulte SET CONCAT_NULL_YIELDS_NULL.
Ejemplos
A Uso de la concatenación con asignación compuesta para cadenas
DECLARE @v1 varchar(10) = 'a'
SET @v1 ||= 'b';
SELECT @v1
Este es el conjunto de resultados.
ab
B. Uso de la concatenación con asignación compuesta para datos binarios
DECLARE @v2 varbinary(10) = 0x1a;
SET @v2 ||= 0x2b;
select @v2;
Este es el conjunto de resultados.
0x1A2B
Contenido relacionado
- || (Concatenación de cadenas) (Transact-SQL)
- + (concatenación de cadenas) (Transact-SQL)
- += (Asignación de concatenación de cadenas) (Transact-SQL)
- ALTER DATABASE (Transact-SQL)
- CAST y CONVERT (Transact-SQL)
- Conversión de tipos de datos (Motor de base de datos)
- Tipos de datos (Transact-SQL)
- Expresiones (Transact-SQL)
- Funciones integradas (Transact-SQL)
- Operadores (Transact-SQL)
- SELECT (Transact-SQL)
- Instrucciones SET (Transact-SQL)