Novidades SQL 2008 – Operadores Atribuição Composta

Abril 10, 2009 at 10:16 pm (SQL Server) (, , , )

 

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.

Comente