T-SQL no SQL Server 2012 – Parte 1

Olá pessoal,

O intuito dessa serie de posts que vou  iniciar agora é mostrar tudo de novo que temos na parte de T-SQL no SQL Server 2012. Antes de iniciarmos é bom deixar frisado que o intuito aqui não é mostrar nada mirabolante, mas sim o SIMPLES! Então esqueçam de ver algo avançado, o que vocês irão ver aqui é o básico.

Para não criar posts extensos que nos cansam de ler, vou faze-lo por partes. Hoje vamos falar de:

  • Execute WITH RESULT SETS
  • Sequence

1) Execute WITH RESULT SETS.

Esse novo recurso surgiu no SQL Server 2012 como uma necessidade de formatação de nossos conjuntos de dados, provenientes de uma stored procedure. Então sua explicação e demonstração é bastante simples. Pegamos um result set que está vindo como saída de uma procedure e mostramos para o usuário da maneira que necessitamos através desse result set personalizado.

Vamos ver como funciona?

Tenho aqui uma simples procedure.

use AdventureWorksDW2012
go

create procedure spGetSalesAmout
as
select FirstName,SalesAmount from FactInternetSales as fact
join DimCustomer as cust
on fact.CustomerKey = cust.CustomerKey

Temos aqui duas possibilidades de deixar nosso result set mais amigavel.

1) Mudar diretamente no codigo T-SQL

2) Utilizar o recurso WITH RESULT SETS.

Vamos ver como funciona?

execute spGetSalesAmout
WITH RESULT SETS
(
([Primeiro Nome] varchar(20),
[Total de Vendas] money)
);

Como vemos aqui, podemos até trocar o tipo de dados que será retornado. Vamos agora ver o resultado.

image

Em questões de usabilidade esse recurso seria interessante onde não podemos mudar o código da consulta T-SQL, por muitas vezes estar capturando dados de outros sistemas.

Como podemos ver um recurso muito simples e que pode nos ajudar bastante.

2) Sequence

Recurso esse muito conhecido no Oracle é a sequence, um objeto responsável por gerar números sequencias. Ai você me pergunta: Mas já temos o identity. Correto, porem o objeto Sequence vem para abrir mais possibilidades de utilização  e como a mesma é um objeto permite outros tipos de gerenciamento que não temos no campo identity.

Como utilizar?

Passo 1: Criação da Sequence.

A criação da sequence é muito simples e com apenas alguns comandos já conseguimos criar.

create sequence DemoSequence
START WITH 1
INCREMENT BY 1;

Até ai também podemos utilizar o identity no campo, já que conseguimos ter o inicio e realizar incrementos personalizados.

Como utilizamos a sequence?

create table Demo1 (id int primary key, nome varchar(100))
go
insert into Demo1
values
(NEXT VALUE FOR dbo.DemoSequence,’Marcos Freccia’)

O comando NEXT VALUE FOR dbo.DemoSequence é o que faz o numero ser gerado e automaticamente incrementado.

image

Se realizarmos mais uma inserção teremos.

image

Como eu disse anteriormente, a Sequence é um objeto então a possibilidade de gerenciamento e de usabilidade é maior por exemplo.

insert into Demo1
values
(NEXT VALUE FOR dbo.DemoSequence +2 ,’Marcos Freccia’)

Resultado.

image

Podemos criar também sequences que possuem um limite máximo de números a serem gerados.

create sequence DemoSequence2
START WITH 1
INCREMENT BY 1
MAXVALUE 5;

Vamos realizar apenas uma demonstração.

create table Demo2 (id int, nome varchar(100))
go
insert into Demo2
values
(NEXT VALUE FOR dbo.DemoSequence2 ,’Marcos Freccia’)
GO 5

select * from Demo2

image

Vamos realizar apenas mais uma inserção.

image

Como puderam ver, a nossa sequence não deixou que realizássemos mais inserções de dados no campo.

Bom pessoal por hoje era isso, espero que tenham gostado e no decorrer do tempo estarei mostrando mais funcionalidades em T-SQL no SQL Server 2012

Sobre Marcos Freccia

MVP em SQL Server (Data Plataform) , especialista em SQL Server, e atualmente trabalhando com Microsoft Azure!

Publicado em julho 16, 2012, em Desenvolvimento, SQL Server 2012, T-SQL, VirtualPass e marcado como , . Adicione o link aos favoritos. 1 comentário.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: