SlideShare uma empresa Scribd logo
1 de 19
Armazenamento Temporário e 
Common Table Expressions (CTE)
Agenda 
1. Variáveis T-SQL 
2. Tabelas Temporárias 
3. Variáveis tipo TABLE 
4. CTE 
5. CTE Recursiva 
6. DEMOS 
7. Perguntas ?
Variáveis T-SQL 
Uma variável local Transact-SQL é um objeto que pode conter um valor de dados de 
um tipo específico. As variáveis em lotes e scripts são normalmente usadas: 
 Como um contador, para contar o número de vezes que um loop é executado ou 
controlar quantas vezes que o loop é executado. 
 Para reter um valor de dados a ser testado por uma instrução de controle de 
fluxo. 
 Para salvar um valor de dados a ser retornado por um código de retorno de 
procedimento armazenado ou valor de retorno de função. 
Fonte: http://msdn.microsoft.com/pt-br/library/ms187953(v=sql.105).aspx
Variáveis T-SQL
Tabelas Temporárias 
Há dois tipos de tabelas temporárias: local e global. 
Elas diferem uma da outra pelo nome, visibilidade e disponibilidade. 
As tabelas temporárias locais têm um único sinal (#) como primeiro caractere no 
nome; elas são visíveis somente na conexão atual para o usuário e são excluídas 
quando o usuário se desconecta da instância do SQL Server. 
As tabelas temporárias globais têm dois sinais (##) como primeiros caracteres no 
nome; elas são visíveis a qualquer usuário após serem criadas e são excluídas 
quando todos os usuários que consultam a tabela se desconectam da instância do 
SQL Server.
Tabelas Temporárias 
 São gravadas fisicamente, armazenadas no banco de sistema 
(tempdb) 
 Permite utilizar índices (o que pode gerar ganho de 
performance) 
 São visíveis apenas enquanto a conexão está ativa 
TempDB: http://msdn.microsoft.com/pt-br/library/ms190768.aspx
Tabelas Temporárias
Variáveis tipo TABLE 
 Criadas apenas dentro do escopo (da procedure, trigger ou do lote que foram 
construídas) 
 Armazenadas em disco! 
 Gasta menos recursos com bloqueio 
 As operações são minimamente logadas (consumindo então menos recurso de log) 
 Quando utilizadas em stored procedures, geram menos recompilações do que se 
fossem utilizadas tabelas temporárias 
 Não podem ser alvos de SELECT/INTO ou INSERT/EXEC 
 Não podem ter índices não-cluster 
 Não é possível criar e/ou atualizar estatísticas 
 Não se pode mudar sua estrutura depois que ela for criada (adicionar uma coluna, 
por exemplo)
Variáveis tipo TABLE
Links 
Perguntas freqüentes - variáveis de tabela 
SQL SERVER – Difference TempTable and Table Variable – 
TempTable in Memory a Myth
CTE 
Chamamos de common table expression o conjunto de resultados 
temporário que se define no escopo de execução de uma instrução 
SELECT, INSERT, UPDATE, DELETE ou CREATE VIEW. 
As CTEs não são armazenadas como objetos e conservam-se 
apenas durante a consulta, sendo, por estes motivos, parecidas 
com as tabelas derivadas (ou variáveis tipo TABLE).
CTE 
O uso de CTEs está voltado para as seguintes finalidades: 
 Para criar uma consulta recursiva; 
 Para substituir uma view nas situações em que seu uso geral 
não é exigido; 
 Para habilitar o agrupamento por uma coluna derivada em um 
subselect escalar; 
 Para referenciar diversar vezes na mesma instrução a tabela 
resultante;
CTE 
 Usar uma CTE oferece as vantagens de legibilidade aprimorada 
e facilidade de manutenção de consultas complexas. A consulta 
pode ser dividida em blocos de construção lógicos simples e 
separados. Esses blocos simples podem ser usados para criar CTEs 
interinas mais complexas, até que o resultado final seja gerado. 
 As CTEs podem ser definidas em rotinas definidas pelo usuário, 
como funções, procedimentos armazenados, gatilhos ou exibições. 
CTEs também podem ser aninhadas.
Estrutura de uma CTE 
Uma CTE é constituída de um nome de expressão representando a 
CTE, uma lista de colunas opcional e uma consulta que define a CTE. 
Após a definição da CTE, ela poderá ser referenciada como uma 
tabela ou exibição em uma instrução SELECT, INSERT, UPDATE ou 
DELETE. Uma CTE também pode ser usada em uma instrução CREATE 
VIEW como parte da instrução SELECT que a define. 
A estrutura de sintaxe básica de uma CTE é:
Relatório de Pedidos
Relatório de Pedidos
CTE Recursiva 
Com as CTEs também é possível escrever consultas recursivas, as 
quais são formadas por três elementos: a invocação da rotina, a 
invocação recursiva da rotina e a verificação de finalização. 
Uma CTE recursiva é capaz de retornar diversas linhas, ao contrario 
de uma rotina recursiva de outras linguagens, que retorna um valor 
escalar. 
Enquanto criamos a CTE, podemos modificar sua consulta. Para isto 
basta criar a consulta do membro âncora, adicionar o operador 
UNION ALL e, então, criar a consulta do membro recursivo que fala 
auto-referência à CTE.
CTE Recursiva 
CTE Recursiva: http://msdn.microsoft.com/pt-br/library/ms186243(v=sql.105).aspx
CTE Recursiva

Mais conteúdo relacionado

Destaque

Sql Server Stored Procedures
Sql Server   Stored ProceduresSql Server   Stored Procedures
Sql Server Stored Procedures
alexdutra
 
The history of the lego group in one slide
The history of the lego group in one slideThe history of the lego group in one slide
The history of the lego group in one slide
David Robertson
 
Lego: Strategy Analysis & Business Model
Lego: Strategy Analysis & Business ModelLego: Strategy Analysis & Business Model
Lego: Strategy Analysis & Business Model
Evgenii Gvozdev
 

Destaque (20)

Controlando cargas de trabalho com o resource governor no SQL Server 2014
Controlando cargas de trabalho com o resource governor no SQL Server 2014Controlando cargas de trabalho com o resource governor no SQL Server 2014
Controlando cargas de trabalho com o resource governor no SQL Server 2014
 
Sql Server Stored Procedures
Sql Server   Stored ProceduresSql Server   Stored Procedures
Sql Server Stored Procedures
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
ABM PowerPoint
ABM PowerPointABM PowerPoint
ABM PowerPoint
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggers
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Server
 
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataformaDo MTA ao MCM*, carreira SQL Server e DBA multiplataforma
Do MTA ao MCM*, carreira SQL Server e DBA multiplataforma
 
Omdømmedagen 2009: Majken Shultz (Copenhagen Business School)
Omdømmedagen 2009: Majken Shultz (Copenhagen Business School)Omdømmedagen 2009: Majken Shultz (Copenhagen Business School)
Omdømmedagen 2009: Majken Shultz (Copenhagen Business School)
 
The history of the lego group in one slide
The history of the lego group in one slideThe history of the lego group in one slide
The history of the lego group in one slide
 
Personalização e customização no produto RM
Personalização e customização no produto RMPersonalização e customização no produto RM
Personalização e customização no produto RM
 
Monitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - NagiosMonitoramento de Serviços de Bancos de Dados - Nagios
Monitoramento de Serviços de Bancos de Dados - Nagios
 
Linguagem c#
Linguagem c#Linguagem c#
Linguagem c#
 
Monitoramento de Redes com Nagios
Monitoramento de Redes com NagiosMonitoramento de Redes com Nagios
Monitoramento de Redes com Nagios
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Instalando e configurando o protheus 11 x sql server
Instalando e configurando o protheus 11 x sql serverInstalando e configurando o protheus 11 x sql server
Instalando e configurando o protheus 11 x sql server
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
 
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulasTOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012
 
Lego: Strategy Analysis & Business Model
Lego: Strategy Analysis & Business ModelLego: Strategy Analysis & Business Model
Lego: Strategy Analysis & Business Model
 

Semelhante a Armazenamento Temporário e CTEs - SQL Server

364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
QuitriaSilva550
 
TimesTen In-Memory Database
TimesTen In-Memory DatabaseTimesTen In-Memory Database
TimesTen In-Memory Database
Andre Danelon
 
Apresentação básica de my sql
Apresentação básica de my sqlApresentação básica de my sql
Apresentação básica de my sql
Marcus Couto
 

Semelhante a Armazenamento Temporário e CTEs - SQL Server (20)

Banco de dados oracle
Banco de dados oracleBanco de dados oracle
Banco de dados oracle
 
Performance Sql Server
Performance Sql ServerPerformance Sql Server
Performance Sql Server
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Novidades do SQL Server 2008
Novidades do SQL Server 2008Novidades do SQL Server 2008
Novidades do SQL Server 2008
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8
 
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
 
Introdução ao BD Postgre
Introdução ao BD PostgreIntrodução ao BD Postgre
Introdução ao BD Postgre
 
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoTechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
TechEd 2010: SQL Server com Foco em Diagnóstico de Desempenho
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
 
TimesTen In-Memory Database
TimesTen In-Memory DatabaseTimesTen In-Memory Database
TimesTen In-Memory Database
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
 
Apresentação básica de my sql
Apresentação básica de my sqlApresentação básica de my sql
Apresentação básica de my sql
 
Banco de Dados.pptx
Banco de Dados.pptxBanco de Dados.pptx
Banco de Dados.pptx
 
TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 

Último

Último (20)

M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 

Armazenamento Temporário e CTEs - SQL Server

  • 1. Armazenamento Temporário e Common Table Expressions (CTE)
  • 2. Agenda 1. Variáveis T-SQL 2. Tabelas Temporárias 3. Variáveis tipo TABLE 4. CTE 5. CTE Recursiva 6. DEMOS 7. Perguntas ?
  • 3. Variáveis T-SQL Uma variável local Transact-SQL é um objeto que pode conter um valor de dados de um tipo específico. As variáveis em lotes e scripts são normalmente usadas:  Como um contador, para contar o número de vezes que um loop é executado ou controlar quantas vezes que o loop é executado.  Para reter um valor de dados a ser testado por uma instrução de controle de fluxo.  Para salvar um valor de dados a ser retornado por um código de retorno de procedimento armazenado ou valor de retorno de função. Fonte: http://msdn.microsoft.com/pt-br/library/ms187953(v=sql.105).aspx
  • 5. Tabelas Temporárias Há dois tipos de tabelas temporárias: local e global. Elas diferem uma da outra pelo nome, visibilidade e disponibilidade. As tabelas temporárias locais têm um único sinal (#) como primeiro caractere no nome; elas são visíveis somente na conexão atual para o usuário e são excluídas quando o usuário se desconecta da instância do SQL Server. As tabelas temporárias globais têm dois sinais (##) como primeiros caracteres no nome; elas são visíveis a qualquer usuário após serem criadas e são excluídas quando todos os usuários que consultam a tabela se desconectam da instância do SQL Server.
  • 6. Tabelas Temporárias  São gravadas fisicamente, armazenadas no banco de sistema (tempdb)  Permite utilizar índices (o que pode gerar ganho de performance)  São visíveis apenas enquanto a conexão está ativa TempDB: http://msdn.microsoft.com/pt-br/library/ms190768.aspx
  • 8. Variáveis tipo TABLE  Criadas apenas dentro do escopo (da procedure, trigger ou do lote que foram construídas)  Armazenadas em disco!  Gasta menos recursos com bloqueio  As operações são minimamente logadas (consumindo então menos recurso de log)  Quando utilizadas em stored procedures, geram menos recompilações do que se fossem utilizadas tabelas temporárias  Não podem ser alvos de SELECT/INTO ou INSERT/EXEC  Não podem ter índices não-cluster  Não é possível criar e/ou atualizar estatísticas  Não se pode mudar sua estrutura depois que ela for criada (adicionar uma coluna, por exemplo)
  • 10. Links Perguntas freqüentes - variáveis de tabela SQL SERVER – Difference TempTable and Table Variable – TempTable in Memory a Myth
  • 11. CTE Chamamos de common table expression o conjunto de resultados temporário que se define no escopo de execução de uma instrução SELECT, INSERT, UPDATE, DELETE ou CREATE VIEW. As CTEs não são armazenadas como objetos e conservam-se apenas durante a consulta, sendo, por estes motivos, parecidas com as tabelas derivadas (ou variáveis tipo TABLE).
  • 12. CTE O uso de CTEs está voltado para as seguintes finalidades:  Para criar uma consulta recursiva;  Para substituir uma view nas situações em que seu uso geral não é exigido;  Para habilitar o agrupamento por uma coluna derivada em um subselect escalar;  Para referenciar diversar vezes na mesma instrução a tabela resultante;
  • 13. CTE  Usar uma CTE oferece as vantagens de legibilidade aprimorada e facilidade de manutenção de consultas complexas. A consulta pode ser dividida em blocos de construção lógicos simples e separados. Esses blocos simples podem ser usados para criar CTEs interinas mais complexas, até que o resultado final seja gerado.  As CTEs podem ser definidas em rotinas definidas pelo usuário, como funções, procedimentos armazenados, gatilhos ou exibições. CTEs também podem ser aninhadas.
  • 14. Estrutura de uma CTE Uma CTE é constituída de um nome de expressão representando a CTE, uma lista de colunas opcional e uma consulta que define a CTE. Após a definição da CTE, ela poderá ser referenciada como uma tabela ou exibição em uma instrução SELECT, INSERT, UPDATE ou DELETE. Uma CTE também pode ser usada em uma instrução CREATE VIEW como parte da instrução SELECT que a define. A estrutura de sintaxe básica de uma CTE é:
  • 17. CTE Recursiva Com as CTEs também é possível escrever consultas recursivas, as quais são formadas por três elementos: a invocação da rotina, a invocação recursiva da rotina e a verificação de finalização. Uma CTE recursiva é capaz de retornar diversas linhas, ao contrario de uma rotina recursiva de outras linguagens, que retorna um valor escalar. Enquanto criamos a CTE, podemos modificar sua consulta. Para isto basta criar a consulta do membro âncora, adicionar o operador UNION ALL e, então, criar a consulta do membro recursivo que fala auto-referência à CTE.
  • 18. CTE Recursiva CTE Recursiva: http://msdn.microsoft.com/pt-br/library/ms186243(v=sql.105).aspx