Novidades SQL 2008 – Operadores Atribuição Composta
Este é mais um novo recurso do SQL 2008 que permite juntar um operador aritmético ( + – / * ) com o operador de atribuição (=).
Exemplo:
declare @Total Int set @Total = 5 set @Total *= 2
Observação: Operadores aritméticos também são chamados de bitwise.
Este é um recurso que já existe em diversas linguagens de programação, tais como C# e Java, as vantagens em utiliza-lo são:
- Reduz o tempo de processamento de determinadas chamadas
- Deixa o código mais legível
- Economiza a codificação
Abaixo uma tabela com os operadores de atribuição composta com a forma convencional equivalente:
|
Operador |
Operação |
Atribuição composta |
Forma convencional equivalente |
|
+= |
Adição |
set @total += 1 |
set @total = @total + 1 |
|
-= |
Subtração |
set @total -= 1 |
set @total = @total – 1 |
|
*= |
Multiplicação |
set @total *= 1 |
set @total = @total * 1 |
|
/= |
Divisão |
set @total /= 1 |
set @total = @total / 1 |
|
^= |
XOR bit a bit |
set @total ^= 1 |
set @total = @total ^ 1 |
|
&= |
AND bit a bit |
set @total &= 1 |
set @total = @total & 1 |
|
|= |
OR bit a bit |
set @total |= 1 |
set @total = @total | 1 |
Importante: Só é possível realizar apenas uma atribuição composta a uma mesma variável na mesma linha, o exemplo abaixo não é possível:
set @total += @total -= 2
Porém, é possível realizar várias atribuições a uma mesma variável utilizando a instrução select, conforme o exemplo abaixo:
SELECT @Total = @Total +1, @Total += 2
Observação: Neste caso, a atribuição ocorre da esquerda para a direita.