Histórico de revisões



Documentos relacionados
8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

Structured Query Language (SQL)

Gatilhos (Triggers) Prof. Márcio Bueno Elaborado por Maria Lígia B. Perkusich

Comandos de Manipulação

Tarefa Orientada 19 Triggers

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Tarefa Orientada 16 Vistas

Treinamento sobre SQL

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

ADMINISTRAÇÃO DE BANCO DE DADOS

A linguagem SQL

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Tarefa Orientada 15 Manipulação de dados

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

SQL Structured Query Language

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Bases de Dados 2007/2008. Aula 9

Principais Instruções em SQL

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Banco de Dados. Prof. Antonio

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Tarefa Orientada 14 Subconsultas

Junções e Índices em Tabelas


Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Exercícios de Lógica Exercícios de Fixação 08

Introdução à linguagem SQL

SQL. Autor: Renata Viegas

Integridade dos Dados

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

Banco de Dados. Maurício Edgar Stivanello

EXEMPLOS DE COMANDOS NO SQL SERVER

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

Transações Seguras em Bancos de Dados (MySQL)

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Operação de União JOIN

Banco de Dados. Conversão para o Banco de Dados SisMoura

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

Comandos DDL. id_modulo = id_m odulo

EXERCÍCIOS PRÁTICOS. Banco de Dados

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Linguagem de Consulta Estruturada SQL- DML

DML - SELECT Agrupando Dados

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Tarefa Orientada 13 Agrupamento e sumário de dados

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

PROGRAMA. Objectivos Gerais :

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

CIÊNCIA E TECNOLOGIA DO RIO

Linguagem SQL (Parte I)

PHP INTEGRAÇÃO COM MYSQL PARTE 1

CONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento.

SQL (Structured Query Language)

O que são Bancos de Dados?

Bases de Dados 2005/2006. Aula 5

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Tarefa Orientada 11 Junção Interna

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

BDII SQL Junção Revisão 8

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Projeto de Banco de Dados: Empresa X

Controle de transações em SQL

trigger insert, delete, update

Principais Comandos SQL Usados no MySql

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

SQL UMA ABORDAGEM INTERESSANTE

ADMINISTRAÇÃO DE BANCO DE DADOS

SQL Avançado Continuação. Renata Viegas

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Programação SQL. Introdução

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Projeto de Banco de Dados

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Regras de Integridade. Profa. Késsia Marchi

4.6. SQL - Structured Query Language

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Tarefa Orientada 18 Procedimentos armazenados

SQL Gatilhos (Triggers)

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

SQL. Structured Query Language. Copyright Prof. Edison Andrade Martins Morais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

Transcrição:

Apostila 3

Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr

CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções agregadas Apelidos para tabelas Junções de tabelas Joins Subconsultas e Listas de valores Utilização de valores default e de regras Tabelas temporárias Gatilhos Stored procedures Tratamento de erros Backup e Restore de banco de dados

EXCLUSÃO DE REGISTROS O comando DELETE exclui permanentemente uma ou mais linhas de uma tabela, baseado em alguma condição. Sintaxe DELETE FROM nome_tabela WHERE condicao Onde: nome_tabela é o nome da tabela que deseja excluir os dados. condicao é condição para selecionar as dados d que deseja excluir. Por exemplo, para excluir o resumo operacional cuja chave primária é 27 da tabela tbresumosoperacionais, execute o seguinte comando no banco de dados d Exemplo: delete from tbresumosoperacionais where coresumooperacional = 27 O comando delete from tbresumosoperacionais apagaria todos os g registros da tabela.

EXCLUSÃO DE REGISTROS Observações A exclusão não poderá ser desfeita. Em qual caso o SGBD não permitiria estas exclusões???

DADOS DE RESUMO GROUP BY E HAVING Forma geral do GROUP BY e HAVING SELECT lista_de_colunas FROM lista_de_tabelas tabelas WHERE condições GROUP BY lista_de_expressões HAVING condições Cláusula GROUP BY: Organiza as linhas de resultado em grupos de acordo com os valores das expressões informadas. Permite utilizar funções agregadas, que calculam valores baseado nas linhas de um grupo e geram valores de resumo. Cláusula HAVING (opcional): seleciona os grupos de acordo com os resultados. O resultado do SELECT...GROUP BY... tem uma linha para cada grupo, que pode conter valores de resumo (somatório, média, contagem etc.) calculados dentro do grupo.

EXEMPLOS GROUP BY E HAVING Retornando a quantidade de registros da tabela tbcomprovantevenda select count(*) as totalregistros from tbcomprovantevenda Retornando a quantidade de registros da tabela por Resumo Operacional, agrupadas por coresumooperacional select coresumooperacional, COUNT(*)as totalregistros from dbo.tbcomprovantevenda group by coresumooperacional Retornando a quantidade de registros da tabela por Resumo Operacional, agrupadas por coresumooperacional com total >= 3 select coresumooperacional, COUNT(*)as totalregistros from dbo.tbcomprovantevenda group by coresumooperacional having COUNT(*) >= 3 Prática: Implemente e execute os SQL com group by apresentados

SELECIONANDO N OCORRÊNCIAS DE UMA TABELA SELECT TOP 1000 [coresumooperacional],[dataregistro],[coestabelecimentocomercial] FROM [bdprocessadoracartao].[dbo].[tbresumosoperacionais]

Funções agregadas Além da função COUNT, existem outras funções agregadas que podem ser usadas para fazer operações sobre os elementos do grupo: AVG(expr): Calcula o valor médio da expressão expr dentro do grupo. A expressão pode ser um nome de coluna ou calculada a partir de colunas e/ou constantes. Exemplo: AVG (salario*1.1) COUNT(expr): p Conta quantos valores existem da expressão dada dentro do grupo (se expr for NULL para uma linha, a linha não é incluída na contagem). COUNT(*): Conta quantas linhas existem dentro do grupo. MAX(expr): Retorna o máximo valor de expr dentro do grupo. MIN(expr) : Retorna o mínimo valor de expr dentro do grupo. SUM(expr) : Retorna o somatório da expressão dentro do grupo.

Funções agregadas - Exemplos Exemplos select coresumooperacional, AVG(valorItemVenda) as valormedio from dbo.tbcomprovantevenda group by coresumooperacional select coresumooperacional, COUNT(*) as totalregistro, AVG(valorItemVenda) as valormedio, MAX(valorItemVenda) as valormaximo, MIN(valorItemVenda) It as valorminimo, i SUM(valorItemVenda) as somavalores Vl from dbo.tbcomprovantevenda group by coresumooperacional Prática: Implemente e execute os SQL apresentados.

A cláusula Having Após feito o agrupamento, pode-se usar a cláusula HAVING para selecionar quais os grupos a serem incluídos no resultado. Por exemplo, para selecionar os resumos operacionais com valor médio de comprovante de venda maior do que R$ 1.000,00 podemos utilizar o SQL abaixo: select coresumooperacional, COUNT(*) as totalregistro, AVG(valorItemVenda) as valormedio, MAX(valorItemVenda) as valormaximo, MIN(valorItemVenda) as valorminimo, SUM(valorItemVenda) as somavalores from dbo.tbcomprovantevenda group by coresumooperacional having AVG(valorItemVenda) > 1000 As cláusulas WHERE e HAVING são semelhantes. Mas WHERE seleciona as linhas da tabela que irão participar da geração do resultado. Essas linhas serão agrupadas e depois HAVING é aplicado ao resultado de cada grupo, para saber quais grupos vão aparecer no resultado. Prática: Implemente consulta que retorne todos os resumos operacionais que possuem mais que 2 comprovantes de venda.

Apelidos para tabelas Para simplificar a qualificação de colunas, pode-se usar um apelido [alias] de tabela, um nome colocado imediatamente após o nome da tabela, na lista do FROM. Esse nome representa a tabela nas qualificações. select * from tbcomprovantevenda cv, tbresumosoperacionais ro, tbestabelecimentoscomerciaist b t i i ec where cv.coresumooperacional = ro.coresumooperacional and ro.coestabelecimentocomercial = ec.coestabelecimentocomercial and ro.coestabelecimentocomercial = 14 Prática: implemente a consulta que retorne os seguintes campos: razaosocial, dataregistro, descrição da bandeira utilizando apelido para as tabelas envolvidas no select.

Junções de tabelas O SQL Server aceita duas sintaxes diferentes para junção de tabelas, autilizando o sinal de = e a inner join. Na inner join, a condição de junção é especificada com a palavra ON Este tipo de junção conecta as duas tabelas e retorna apenas as linhas que satisfazem a condição de junção. Junção interior (Inner join) Este tipo de junção conecta as duas tabelas e retorna apenas as linhas que satisfazem a condição de junção. select dataregistro, descricaobandeira, numeroparcelas from dbo.tbresumosoperacionais inner join dbo.tbbandeirascartaocredito on dbo tbresumosoperacionais cobandeira = on dbo.tbresumosoperacionais.cobandeira dbo.tbbandeirascartaocredito.cobandeira

Junções de tabelas Exemplo de junção com mais de 2 tabelas select dataregistro, descricaobandeira, numeroparcelas, razaosocial from dbo.tbresumosoperacionais ro inner join dbo.tbbandeirascartaocredito bcc on ro.cobandeira = bcc.cobandeira inner join dbo.tbestabelecimentoscomerciais ec on ro.coestabelecimentocomercial Etbl tc il= ec.coestabelecimentocomercial Etbl tc il Prática: Implemente e execute os SQL de join apresentados

Junção exterior Uma junção exterior [outer join] mostra todas as linhas de uma tabela, mesmo quando elas não satisfazem a condição de junção. select coresumooperacional, dataregistro, descricaobandeira, numeroparcelas from dbo.tbresumosoperacionais left outer join dbo.tbbandeirascartaocredito on dbo.tbresumosoperacionais.cobandeira = dbo.tbbandeirascartaocredito.cobandeira Se é usado LEFT OUTER JOIN indica que todas as linhas da tabela à esquerda Se é usado LEFT OUTER JOIN indica que todas as linhas da tabela à esquerda (no caso, tbresumosoperacionais) são incluídas no resultado.

Junção exterior Se fosse usado RIGHT OUTER JOIN, a tabela à direita tbbandeirascartaocredito mostraria todas as linhas e a tabela à esquerda, apenas as relacionadas. select coresumooperacional, dataregistro, descricaobandeira, numeroparcelas from dbo.tbresumosoperacionais RIGHT outer join dbo.tbbandeirascartaocredito on dbo.tbresumosoperacionais.cobandeira = dbo.tbbandeirascartaocredito.cobandeira

Subconsulta Uma sub-consulta [subquery] é uma consulta SELECT aninhada dentro de outro comando SQL. Ela pode retornar um valor só ou uma lista de valores para ser usada numa comparação. ação Observe o calculo do percentual de item dentro do RO de código 27 mostrado abaixo. 100*(valorItemVenda*1.0/ (select sum(valoritemvenda) from tbcomprovantevenda where coresumooperacional = 27)) Prática: Digite, analise e teste o SQL abaixo select descricaoitemvenda as 'Descrição', quantidadeitemvenda, valoritemvenda, round((.96*valoritemvenda), 2) as 'Valor a receber', 100*(valorItemVenda*1.0/ 1.0/ (select sum(valoritemvenda) from tbcomprovantevenda where coresumooperacional = 27)) as 'Percentual do RO' from dbo.tbcomprovantevenda where coresumooperacional = 27 order by 'Valor a receber' desc

SUBCONSULTAS COM OPERADORES Uma sub-consulta pode ser inserida nos resultados, como acima, ou pode ser usada numa expressão WHERE, com um operador de comparação, como =, <, >, <=, >= ou <>. Nesse caso ela deve retornar apenas um valor. Esse valor é substituído na consulta principal no momento da execução.

Práticas Execução SQL de consulta Consultas simples de campos de tabelas Select * from tbcomprovantevenda select descricaoitemvenda, valoritemvenda from tbcomprovantevenda Consulta com ordenação por determinado campo select descricaoitemvenda, valoritemvenda from tbcomprovantevenda order by descricaoitemvenda select descricaoitemvenda, valoritemvenda, valoritemvenda*.9 from tbcomprovantevenda order by descricaoitemvenda Consulta de campo calculado select descricaoitemvenda as Item, valoritemvenda as Valor, valoritemvenda*.9 as valorcomdesconto from tbcomprovantevenda order by descricaoitemvenda select descricaoitemvenda as Item, valoritemvenda as Valor, valoritemvenda*.9 as 'Valor Com Desconto'from tbcomprovantevenda order by descricaoitemvenda

LISTAS DE VALORES Uma sub-consulta pode retornar uma lista de valores e essa lista de valores pode ser usada em comparações com o operador IN. Exemplos: i - SQL que retorna a descrição das bandeiras que foram utilizadas nas compras por cartões de crédito, utilizando a empresa operadora de cartões de crédito. select descricaobandeira from dbo.tbbandeirascartaocredito where cobandeira in (select distinct cobandeira from dbo.tbresumosoperacionais) ii - SQL que retorna a descrição das bandeiras que não foram utilizadas nas compras por cartões de crédito, utilizando a empresa operadora de cartões de crédito. select descricaobandeira from dbo.tbbandeirascartaocredito where cobandeira not in (select distinct cobandeira from dbo.tbresumosoperacionais)

PRÁTICA Insira na tabela tbbandeirascartaocredito a bandeira ELO Execute os SQL apresentados no slide anterior

DESABILITANDO IDENTITY Pode-se desativar temporariamente a propriedade IDENTITY, para inserir valores explicitamente numa coluna com IDENTITY. Pode ser necessário que você insira i valores explicitamente it t em tabelas que têm itens deletados com frequência. Inserir valores explicitamente na coluna com IDENTITY lhe permite preencher espaços vazios deixados na tabela. Para desativar a geração automática de valores, use: set identity_insert nome_da_tabela on Para voltar ao funcionamento normal, use: set identity_insert nome_da_tabela off

USANDO DEFAULTS E REGRAS Um default é um valor que é usado para colunas quando seus valores não são explicitamente informados. Um default pode ser criado como um objeto à parte ou como restrição de uma coluna, como veremos mais tarde. Uma regra é uma condição que é verificada quando dados são inseridos numa tabela. Ela também pode ser criado como um objeto à parte ou como uma restrição CHECK, como veremos. ALTER TABLE [ ONLY ] tabela [ * ] ALTER [ COLUMN ] coluna { SET DEFAULT valor DROP DEFAULT }

PRÁTICA Altere no SQL Server Mng Studio a tabela tbresumosoperacionais para que possua os valores default abaixo: Campo flagstatus: valor zero Campo dataregistro: valor data/hora da máquina através da função getdate()

CRIANDO E UTILIZANDO UMA REGRA Implemente a consulta que retorna a consulta DETALHE POR RO abaixo. Uma regra verifica o valor de uma coluna para saber se esse valor será aceito ou não. Se um valor inserido com INSERT ou atualizado com UPDATE não satisfaz a regra, ocorre um erro e a operação é cancelada. Uma regra contém uma condição qualquer (semelhante a uma cláusula WHERE) que tem um parâmetro a ser verificado. Esse parâmetro é substituído pelo valor da coluna no momento de execução da regra. Exemplo de criação com alter table: ALTER TABLE [dbo].[tbresumosoperacionais] WITH CHECK ADD CONSTRAINT [CK_tbResumosOperacionais] CHECK (([flagstatus]=(1) OR [flagstatus]=(0))) GO

PRÁTICA Crie utilizando o SQL Server Mng Studio a regra de inserção 0 ou 1 para o campo flagstatus. Veja as imagens a seguir. Em seguida, tente inserir um registro na tabela que possua valor diferente de 0 ou 1 na tabela para ver o resultado da inserção.

GATILHOS - TRIGGERS Um gatilho [trigger] é um tipo de procedimento armazenado, que é executado automaticamente quando ocorre algum tipo de alteração numa tabela. Gatilhos "disparam" a quando ocorre uma operação INSERT, UPDATE ou DELETE numa tabela. a Geralmente gatilhos são usados para reforçar restrições de integridade que não podem ser tratadas pelos recursos mais simples, como regras, defaults, restrições, a opção NOT NULL etc. Um gatilho também pode ser usado para calcular e armazenar valores automaticamente em outra tabela. Poderíamos utilizar um gatilho para quando for excluída um resumo operacional, todos os itens relacionados serão excluídos automaticamente ti t da tabela de comprovantes de venda. Por que não funcionaria neste caso???

CRIANDO GATILHOS Gatilhos são sempre criados vinculados a uma determinada tabela. Se a tabela for excluída, todos os gatilhos dela são excluídos como conseqüência. Ao criar um gatilho, você pode especificar qual(is) a(s) operação(ões) em que ele será acionado: INSERT, UPDATE ou DELETE. create trigger ExclusaoRO on DBO.tbResumosOperacionais AFTER delete --,UPDATE, DELETE as -- excluir todos os itens relacionados -- (mesmo coresumooperacional que deleted) delete from tbcomprovantevenda where coresumooperacional in (select coresumooperacional from deleted)

PRÁTICA Crie o gatilho acima Execute o SQL select * from dbo.tbcomprovantevenda e selecione algum coresumooperacional Tente apagar o registro que possui este valor como PK na tabela tbresumosoperacionais delete from tbresumosoperacionais where coresumooperacional = 27 Tente descobrir por que o banco de dados não deixou fazer a exclusão e execução do gatinho

PROCEDIMENTO ARMAZENADO Um procedimento armazenado [stored procedure] é uma seqüência de comandos da linguagem Transact-SQL, compilados e armazenados num banco de dados. d Os procedimentos armazenados do sistema [system stored procedures] são fornecidos pelo SQL Server, armazenados no banco de dados master e automatizam várias tarefas comuns de gerenciamento. Uma stored procedure pode receber parâmetros, retornar result set ou valor, executar qualquer tipo de SQL. Prática: Na página "Query" do SQL Server digite sp_databases que é uma SP do sistema

TRANSAÇÕES NO SQL SERVER Definição de transação Unidade lógica de processamento que tem por objetivo preservar a integridade e a consistência dos dados. A sintaxe básica de uma transação é: Begin Transaction --Corpo de comando Commit ou Rollback Onde Begin Transaction: Tag inicial i i para o inicio i i de uma transação. --Corpo de comando: Conjunto de comando a serem executados dentro de uma transação. Commit ou Rollback: Comandos que finalizam a transação onde o commit confirma o conjunto de comandos e o rollback k desfaz todo o processo executado pelo corpo de comandos caso tenha ocorrido algum evento contrario ao desejado. Podemos identificar erros através de estrutura try-catch ou através da chamada de @@ERROR.

TRATAMENTO DE ERROS SQL SERVER @@ERROR Chamada de @@ERROR : Função que por padrão recebe o valor 0 (zero) caso não ocorra nem um erro, assumindo o valor 1 (um) caso contrário. 1. Exemplo @@ERROR: BEGIN TRANSACTION UPDATE FROM TbContas SET NuSaldo= 10.000 WHERE NuSaldo < 50 IF @@ERROR = 0 COMMIT ELSE ROLLBACK END

TRATAMENTO DE ERROS SQL SERVER TRY CATCH Em linguagens de programação como C# e Java, é comum o uso do bloco TRY-CATCH para tratar as exceções lançadas durante a execução das aplicações. Ao implementar Stored Procedures, Funções e Ti Triggers, ou mesmo batches mais complexos, pode ser necessário tratar os possíveis erros ocorridos nos comandos. Até a versão 2000 do SQL Server, era necessário utilizar a função de sistema @@ERROR após cada um dos comando executado, pois o valor de retorno dessa função é reiniciao i i a cada comando executado. As versões 2005 e 2008 do SQL Server permitem implementar o tratamento de erros através do bloco TRY-CATCH, de maneira semelhante às linguagens de programação convencionais. i Este bloco é formado por dois sub-blocos: TRY - contém os comandos necessários para executar a tarefa desejada CATCH - contém os comandos para tratamento de possíveis erros ocorridos no bloco TRY Quando um erro ocorre no dentro do bloco TRY a execução é desviada para o bloco CATCH, o que permite continuar a execução do script ou interrompê-lo, de acordo com as necessidades do usuário e gravidade do erro gerado.

TRATAMENTO DE ERROS SQL SERVER TRY CATCH Sintaxe A sintaxe definida para este bloco de comandos é a seguinte BEGIN TRY [comandos SQL para execução de uma tarefa] END TRY BEGIN CATCH [comandos SQL para tratamento do erro] END CATCH Exemplo -- Criando tabela para teste CREATE TABLE #teste (id int) -- Adicionando restrição à tabela. -- Somente IDs menores do que 10 serão aceitos ALTER TABLE #teste ADD CONSTRAINT chkid CHECK (id < 10) -- Executando a tarefa em transação BEGIN TRANSACTION BEGIN TRY INSERT INTO #teste VALUES (5) INSERT INTO #teste VALUES (2) INSERT INTO #teste VALUES (13) -- Inserção de ID inválido COMMIT TRANSACTION -- Efetivando alterações na base END TRY BEGIN CATCH ROLLBACK TRANSACTION -- Desfazendo as alterações na base END CATCH

PRÁTICA - DESAFIO Implementar as alterações definidas em amarelo no documento Projeto Processadora Cartões de Crédito - Dicionário de dados.xlsx Passos a serem executados Criar nova tabela tbcartoesdecredito com PK em cocartaocredito Adicionar com comando SQL FK em tbcartoesdecredito no campo cobandeira Inserir campo cocartaocredito na tabela TBResumosOperacionais como FK Observações Para inserir nova coluna a tabela não pode haver registros nela. Para apagar os registros desta tabela, qual condição deve ser satisfeita? Excluir campo cobandeira na tabela TBResumosOperacionais

PRÁTICA - SOLUÇÃO Implementar stored procedure para realizar as alterações na tabela. Passos Criar a nova tabela tbcartoesdecredito Armazenar em tabelas temporárias, os dados das tabelas tbcomprovantevenda e TBResumosOperacionais. Não definir nestas tabelas temporárias campo IDENTITY. Apagar os dados das tabelas tbcomprovantevenda e TBResumosOperacionais Realizar as alterações na tabela TBResumosOperacionais Desligar as chaves primárias das tabelas SET IDENTITY_INSERT tbcomprovantevenda ON Copiar os dados das tabelas temporárias para as tabelas tbcomprovantevenda e TBResumosOperacionais Ligar as chaves primárias das tabelas SET IDENTITY_INSERT tbcomprovantevenda OFF

BACKUP DE BANCO DE DADOS Realizar backup de banco de dados no SQL Server é tarefa extremamente simples. Para realizar backup selecionar o banco de dados desejado com o botão direito do mouse e selecionar a opção backup conforme imagem abaixo e, se desejado, especificar outro local diferente do sugerido para armazenar o backup e confirmar a operação.

RESTORE DE BANCO DE DADOS Da mesma maneira, realizar restore de banco de dados no SQL Server é tarefa extremamente simples. Para realizar restore selecionar o banco de dados desejado com o botão direito do mouse e selecionar a opção restore conforme imagem abaixo, selecionando em seguida o banco de dados que se deseja realizar a operação de restore.