Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Este artigo apresenta algumas das novidades que estão por vir no novo SQL Server. Em específico, focamos em algumas das novidades da T-SQL: WITH RESULT SETS, OFFSET e FETCH, THROW para manipulação de erro e SEQUENCE.
Em que situação o tema útil:
Para todos aqueles que tenham interesse em se manter atualizados sobre a evolução do SQL Server, considerado por muitos uma das principais plataformas de banco de dados.
Resumo DevMan
Analisaremos neste artigo algumas das principais mudanças introduzidas na nova versão do SQL Server considerando sua linguagem T-SQL. Neste sentido, abordaremos as seguintes novidades: WITH RESULT SETS, OFFSET e FETCH, THROW para manipulação de erro e SEQUENCE.
A versão CTP do SQL Server 2012 (também conhecida por Denali) foi liberada e já se encontra disponível para download no site da Microsoft. Nesta nova versão, o SQL Server 2012 mantém o seu nível de inovação e traz grandes novidades, incluindo um novo visual para o SSMS. Este agora se parece muito com o Visual Studio.
Apesar de serem muitas as novidades, nos concentraremos neste artigo em algumas disponibilizadas na linguagem T-SQL, em particular:
· WITH RESULT SETS;
· OFFSET e FETCH;
· THROW para manipulação de erro;
· SEQUENCE.
WITH RESULT SETS
Esta é uma boa facilidade disponibilizada com a execução de uma stored procedure. Em versões anteriores do SQL Server quando nós queríamos mudar o nome ou tipo de dado de uma coluna no conjunto de resultados de uma stored procedure, todas as referências às informações alteradas precisavam ser ajustadas. Não existia uma maneira mais simples de se fazer isto sem precisar se preocupar com os nomes das colunas e os tipos dados.
Com a nova versão do SQL Server e uso do operador WithResultsSets, não há mais a necessidade de mudarmos a lógica de nossa stored procedure para fazer estas alterações. Basta usarmos o operador WithResultsSets seguido das modificações que desejamos ter nos resultados da execução da stored procedure. Observe a Listagem 1. Das linhas 1 a 8 definimos nossa stored procedure. Das linhas 11 a 17 fazemos uso do comando WithResultsSets para ajustarmos como os resultados serão apresentados para o usuário.
O resultado da execução desta stored procedure pode ser visto na Figura 1.
Listagem 1. Exemplo de uso do WithResultsSets
1 CREATE PROCEDURE Denali_WithResultSet
2 AS
3 BEGIN
4 SELECT 1 as No,’Tsql’ Type, ‘WithResultSet’ AS Feature UNION ALL
5 SELECT 2 as No,’Tsql’ Type, ‘Throw’ AS Feature UNION ALL
6 SELECT 3 as No,’Tsql’ Type, ‘Offset’ AS Feature UNION ALL
7 SELECT 4 as No,’Tsql’ Type, ‘Sequence’ AS Feature
8 END
9 GO
10 EXEC Denali_WithResultSet
11 WITH RESULT SETS
12 (
13 ( No int,
14 FeatureType varchar(50),
15 FeatureName varchar(50)
16 )
17 )
...