O T-SQL no SQL Server 2008 recebeu um refresh com algumas novidades na sintaxe e em algumas melhorias em alguma funções já existentes. Vamos repassar estas novidades neste artigo, com alguns exemplos bem práticos para que você possa entender com clareza e já aplicar no seu dia-a-dia.
A primeira novidade é a possibilidade de declarar e inicializar uma variável com apenas um comando. Agora podemos declarar e inicializar uma variável com apenas uma linha de código ao invés de implementar um DECLARE e depois uma atribuição com SET ou SELECT. Até a verão 2005, para inicializar uma variável fazíamos assim:
DECLARE @I_VALOR INT
DECLARE @N_VALOR NUMERIC(10,2)
SELECT
@I_VALOR=1,
@N_VALOR=23.2E agora podemos fazer assim:
DECLARE @I_VALOR INT = 1 DECLARE @N_VALOR NUMERIC(10,2) =23.2Outra novidade, são os operadores compostos, como os que temos no C++ ou C#, nos permitindo realizar operações de incrementação com um código muito mais enxuto. Onde antes fazíamos
DECLARE @I_VALOR INT
SET @I_VALOR = 0
WHILE @I_VALOR<10BEGIN
SET @I_VALOR = @I_VALOR +1
PRINT 'Valor é: ' + CAST(@I_VALOR AS VARCHAR(10))
ENDAgora podemos fazer:
DECLARE @I_VALOR INT = 0
WHILE @I_VALOR<10
BEGIN
SET @I_VALOR += 1
PRINT 'Valor é: ' + CAST(@I_VALOR AS VARCHAR(10))
ENDPodemos usar os operadores compostos com os seguintes comandos:
-= Subtração e atribuição
*= Multiplicação e atribuição
/= Divisão e atribuição
%= Modulo e atribuição
&= Comparação lógica e atibuição com E
|= Comparação lógica e atibuição com OU
Uma novidade que achei bastante funcional é possibilidade de colocar vários rows em um insert statement. Veja o script:
USE tempdb;
IF OBJECT_ID('dbo.Clientes', 'U') IS NOT NULL
DROP TABLE dbo.Clientes;
CREATE TABLE dbo.Clientes
(
codigo INT
PRIMARY KEY,
nome VARCHAR(25) NOT NULL,
fone VARCHAR(20) NOT NULL,
endereco VARCHAR(50) NOT NULL
);
INSERT INTO dbo.Clientes(codigo, nome, fone, endereco)
VALUES
(1, 'cliente 1', '(111) 111-1111', 'endereço 1'),
(2, 'cliente 2', '(222) 222-2222', 'endereço 2'),
(3, 'cliente 3', '(333) 333-3333', 'endereço 3'),
(4, 'cliente 4', '(444) 444-4444', 'endereço 4'),
(5, 'cliente 5', '(555) 555-5555', 'endereço 5');
SELECT * FROM dbo.ClientesPara mais informações sobre os ítens que estudamos, acompanhem estes links:
Por hoje é só pessoal. Acompanhem os próximos artigos!
Nenhum comentário:
Postar um comentário
Leave your comment here!