340 likes | 400 Views
Utilizando a cláusula Output no Server 2008 e R2. Pedro Antonio Galvão Junior
E N D
Utilizando a cláusula Output no Server 2008 e R2 Pedro Antonio Galvão Junior MVP | MCDBA | Microsoft Evangelist | Microsoft Partners | Coordenador de Projetos | Engenherio de Processos e Software | Especialista em Desenvolvimento de Software Client/Server | Especialista em Banco de Dados | Professor Universitário | Membro SorBR.Net | Membro MSIT.com.br | Diretor Virtual PASS BR|
Agenda do Evento – Parte 1. • Abertura. • Apresentação. • O que é a cláusula Output? • Por que utilizá-la? • Restrições. • Montando o Ambiente. • Utilizando a cláusula Output com os comandos Insert e Update. • Demostração.
Agenda do Evento – Parte 2. • Utilizando a cláusula Output com o comando Delete. • Demostração. • Utilizando a cláusula Output com Tabelas Temporárias. • Demostração. • Utilizando a cláusula Output com Visões. e Variáveis Tipo Table. • Demostração. • Utilizando a cláusula Output com Variáveis Tipo Table. • Demostração.
Agenda do Evento – Parte 3. • Conclusão. • Encerramento: • Links Complementares. • Dúvidas? • Contatos. • Sorteios. • Próximos Eventos. • Virtual Pass.
Visão Geral O que é cláusula output?
O QUE É CLÁUSULA OUTPUT? • A cláusula Output, tem como objetivo retornar as informações com base em expressões, onde cada linha afetada por uma instrução INSERT, UPDATE, DELETE ou MERGE são apresentadas conforme os valores inseridos. Estes resultados podem ser retornados para o aplicativos, como mensagens de confirmação, arquivamento e outros tais requisitos do aplicativo. • Através da cláusula Output presente no SQL Server 2008, temos estas possibilidade, ou seja, quando estivermos realizando um dos comandos DML(Data Manipulation Languagem – Linguagem de Manipulação de Dados), poderemos obter o retorno destes dados que estamos manipulando no exato momento.
O QUE É CLÁUSULA OUTPUT? • Os resultados também podem ser inseridos em uma tabela ou variável do tipo tabela. Além disso, você pode capturar os resultados de uma cláusula OUTPUT em uma alinhadas a comandos INSERT, UPDATE, DELETE, ou instrução MERGE. • Estes resultados podem ser direcionados a uma tabela de destino ou visão(view). • A partir do momento em que estes dados são capturados seja em uma outra tabela, visão ou variável o usuário poderá trabalhar com esta informação da forma desejada.
O QUE É CLÁUSULA OUTPUT? • Outro detalhe que destaco, uma instrução UPDATE, INSERT ou DELETE que tem uma cláusula OUTPUT retornará linhas para o cliente, mesmo que a instrução encontra erros e é revertida. • O resultado não deve ser usado se ocorrer algum erro ao executar a instrução. • Para utilizar este recurso não é necessário realizar qualquer tipo de alteração na configuração do SQL Server, Banco de Dados ou demais recursos e objetos, trata-se de um comando T-SQL(Transact SQL) e como qualquer comando basta conhecer sua sintaxe e opção para posterior utilização.
Analisando situações e condições de uso POR QUE UTILIZAR A cláusula output?
POR QUE UTILIZAR A CLÁUSULA OUTPUT? • A cláusula OUTPUT pode ser útil para recuperar o valor de identidade ou colunas computadas depois de uma operação INSERT ou UPDATE. • Quando uma coluna computada é incluída em <dml_select_list>, a coluna correspondente na tabela de saída ou variável de tabela não é uma coluna computada. • Os valores na nova coluna são aqueles que foram computados no momento em que a instrução foi executada.
POR QUE UTILIZAR A CLÁUSULA OUTPUT? • Não há nenhuma garantia de que a ordem na qual as alterações são aplicadas à tabela e a ordem na qual as linhas são inseridas na tabela de saída ou na variável de tabela correspondam. • Se forem modificados parâmetros ou variáveis como parte de uma instrução UPDATE, a cláusula OUTPUT sempre retornará o valor do parâmetro ou a variável como era antes de a instrução ser executada, e não o valor modificado. • Você pode usar OUTPUT com uma instrução UPDATE ou DELETE posicionada em um cursor que use a sintaxe WHERE CURRENT OF.
Analisando situações e condições de uso Restrições de uso da cláusula output
RESTRIÇÕES DE USO DA CLÁSULA OUTPUT • Não há suporte para a cláusula OUTPUT nas seguintes instruções: • Instruções DML que façam referência a exibições particionadas locais, exibições particionadas distribuídas ou tabelas remotas. • Instruções INSERT contendo uma instrução EXECUTE. • Não são permitidos predicados de texto completo na cláusula OUTPUT quando o nível de compatibilidade de banco de dados é definido como 100. • A cláusula OUTPUT INTO não pode ser usada para inserção em uma exibição ou função de conjunto de linhas. • Não é possível criar uma função definida pelo usuário caso ela contenha uma cláusula OUTPUT INTO que tenha uma tabela como seu destino.
Definindo a estrutura para utilização da cláusula Output MONTANDO O AMBIENTE
MONTANDO O AMBIENTE • Em nosso ambiente de teste vamos criar um novo Banco de Dados, denominado Exemplos, conforme apresenta o código abaixo: --Criando o Banco de Dados Exemplos-- • Create Database Exemplos • Go --Acessando o Banco de Dados Exemplos-- • Use Exemplos • Go
MONTANDO O AMBIENTE • Agora vamos criar uma nova tabela para este banco de Dados, esta tabela será nomeada como Tabela1, conforme apresenta o código abaixo: --Criando a Table Tabela1-- • Create Table Tabela1 • (CodigoSmallInt Identity Primary Key Clustered, • Valor Int, • DataCriacao Date, • DataManipulacao Date) On [Primary]
MONTANDO O AMBIENTE • Podemos observar que esta tabela, é composta por quatro colunas, os valores posteriormente inseridos não apresentam qualquer tipo de informação verdadeira, os dados tem como objetivo ilustrar podemos trabalhar com a cláusula Output. • Bom, nosso ambiente esta definido e pronto para começarmos a trabalhar com a primeira demonstração, utilizando a instrução Insert e com base neste comando, apresentar os dados retornados pela cláusula Output.
Cláusula Output com Insert e Update Demonstração 1
Cláusula Output com Delete Demonstração 2
Cláusula Output com Tabelas Temporárias Demonstração 3
Cláusula Output com Visões Demonstração 4
Cláusula Output com Variáveis do Tipo Table Demonstração 5
CONCLUSÃO • Pessoal chegamos ao final deste evento, acredito que foi possível conhecer, entender e demonstrar como a CLÁUSULA Output pode ser utilizada, além disso, suas formas de captura, armazenamento e retorno de dados, através dos comandos Insert, Update e Delete. • Conseguimos trabalhar com este recurso combinando o uso de Visões, Table Temporárias e Variables Tables. • Utilizamos também a opção Into dentro da CLÁUSULA Output, fazendo o direcionamento do retorno dos dados para diversos objetos.
CONCLUSÃO • A cláusula Output pode ser considerada uma forma de debug visual de apresentações de dados. • Com a possibilidade de apresentar o retorno dos dados em tela, fica mais fácil entender como este conjunto de valores ficará armazenado em nossas tabelas.
Links Complementares • Site do SQL Server:http://www.microsoft.com/sql/ • Site sobre Cláusula Output: http://msdn.microsoft.com/pt-br/library/ms177564.aspx • TechNet Brasil: http://www.microsoft.com/brasil/technet • MSDN Brasil:http://www.microsoft.com/brasil/msdn
Contatos • Pedrogalvaojunior.wordpress.com • pedrogalvaojunior@gmail.com • @juniorgalvaomvp
Sorteio de brindes Confira o seu número e BOA SORTE!
Virtual PASS Chapter BR • 5 meses de vida • 3000+ visitas por mês • 450 artigos • 40+ vídeos • www.virtualpass.com.br
Próximos Eventos • 3 trackssimultâneas (Dev., Infra. e B.I.) • 18 sessões • Sorteios • Grandes palestrantes • http://bit.ly/sqlsat100
OBRIGADO!!! ATÉ A PRÓXIMA....