CTE - Comom Table Expression

AS CTE – ou Comon Table Expression – são um recurso muito útil e pouco apreciado do SQL Server, introduzido na versão 2005. Sim! Na 2005! Por isso eu disse pouco apreciado. Quem olha para uma query escrita com CTE pela primeira vez, pode achar o código complexo e difícil de desenvolver. Mas, quando você pega o jeito, fica fácil perceber como é simples, fácil e útil trabalhar com elas. Uma CTE é um conjunto de resultados utilizados na execução dos comandos SELECT, INSERT, UPDATE, DELETE ou CREATE VIEW. Esse resultado só existe durante a execução da query. Uma das maiores qualidades da CTE é a habilidade de se auto referenciar (CTE recursiva) ou ser referenciada várias vezes na mesma query. Es

Cláusulas OUTPUT e INTO

A cláusula OUTPUT é uma parte incrível do SQL Server que poucas pessoas conhecem. Ela é uma parte da consulta que retorna os dados de antes ou depois da operação executada. Esta opção é bastante útil para validar os dados tratados. Podemos usar OUTPUT com os comandos INSERT, UPDATE, DELETE e MERGE. Para acessar os dados que estão sendo tratados na instrução SQL, usamos os prefixos de coluna INSERTED e DELETED. Familiar? Claro! São as “tabelas” que tratamos em triggers para manipular os dados na manutenção de uma tabela. Cada comando tem seu prefixo de coluna disponível: INSERT: inserted (para os novos dados) UPDATE: inserted (para os novos dados) e deleted (para os dados antes da alteração)

Cláusulas OFFSET e FETCH no SELECT

As cláusulas OFFSET e FETCH foram incorporadas no SQL Server 2012, e fornece uma opção para gerar a paginação do resultado de uma query. Para utilizá-los, a query deve, necessariamente, ter a cláusula ORDER BY. Usando o BD AdventureWorks2014 como modelo, vamos exibir o conteúdo da tabela HumanResources.Department, organizados pelo Id. A tabela tem 16 registros: Neste comando, vamos acrescentar a cláusula OFFSET. Observe que o resultado pula as cinco primeiras linhas e retorna as linhas restantes: Agora vamos incluir o FETCH: Ok, Ok! Se usar o TOP 10, o resultado seria o mesmo... Então vamos alterar o valor de OFFSET para 4. Agora, o resultado pula as 4 primeiras linhas e exibe as 10 seguinte

Alterar a pasta do TempDB

Hoje precisei alterar a pasta onde os arquivos que compõe o BD TempDB ficam, porque eu precisava liberar alguns Gb naquele disco. Esta é uma ação muito simples de executar, pena que nem tudo é sempre assim! ;-) O passo a passo para esta ação são... Opa! Não tão rápido!!!! Para efetivar a troca de pasta do TempDB, será necessário recriar o BD, ou seja, teremos que reiniciar o SQL Server!!!! Então, antes de clicar no botão "Restart", tenho total, completa e absoluta certeza que você pode reiniciar o SQL nesse momento, ok? Agora que todos estão devidamente avisados, segue o script: Viu? Super simples! #TempDb

Três passos básicos para começar a otimizar suas queries

Se você trabalha com banco de dados, já ouviu a frase: "esta query está lenta, você pode melhorá-la?" ou algo parecido, mexeu na query e ela passou a rodar mais rápido... Parabéns! Bem vindo ao mundo dos DBAs! Neste post quero falar sobre três passos básico que um DBA pode seguir quando começa a analisar um banco de dados que apresenta problemas de performance. Vou falar do grande herói da performance: o índice. E, que me desculpem seus fãs, mas o índice também pode se tornar o vilão do seu banco de dados. IMPORTANTE: execute os scripts abaixo primeiro no seu ambiente de desenvolvimento, familiarize-se com o código e seu resultado. Quando se sentir seguro com a interpretação dos resultados,

Teclas úteis no SQL Server Management Studio

Durante um workshop de dicas do SQL Server, aprendi um truque que ajuda, e muito, a selecionar texto no SSMS. Por isso, segue este post com um resumo destas combinações. Para as imagens, vou usar o código da procedure uspGetBillOfMaterials, do BD exemplo AdventureWorks, previamente formatado no site SQL Formatter, que eu adoro usar para dar uma arrumada inicial em scripts muito bagunçados. Estas combinações quase todo mundo conhece, então vamos relembrar: SHIFT para selecionar texto Pressione shift e use as setas do teclado ou mouse para selecionar texto. CTRL + SHIFT + END Posicione o cursor em um ponto do código e tecle CTRL + SHIFT + END para selecionar deste ponto até o fim do script. CT