Visual Studio alm rangers


Movimentação Complexa de Dados



Baixar 7.59 Mb.
Página33/62
Encontro30.10.2016
Tamanho7.59 Mb.
1   ...   29   30   31   32   33   34   35   36   ...   62

Movimentação Complexa de Dados

Resumo


Os cenários abaixo utilizarão a tarefa de adicionar uma coluna NOT NULL em uma tabela. Esta tarefa é simples mas dependendo do resultado desejado você pode encontrar uma série de problemas. Muitas abordagens irão mover ou renomear a tabela o que pode ter consequências para as chaves estrangeiras ou relacionamentos. Adicionar uma coluna NOT NULL irá cobrir muitos dos problemas que você terá ao alterar chaves estrangeiras entre tabelas.

Nós utilizaremos uma estrutura de banco de dados simples para que possamos focar no comportamento da ferramenta sem maiores intereferências.

Este laboratório está dividio em quatro cenários


  • O cenário 1 irá lhe mostrar como as mudanças são geralmente tratadas em um sistema de projeto e quais problemas você pode encontrar quando faz deploy de mudanças para um banco de dados que contém dados.

  • Os cenários de 2 a 4 irão sugerir abordagens para tratar estas mudanças, incluindo os prós e contras de cada situação.


Objetivos dos Cenários




  • Entendimento das três formas através das quais é possível integrar código customizado ao sistema de deployment.

  • Balanceamento das necessidades de performance, gestão de fonts e migração complexa de dados sem comprometer as funcionalidades do banco do dados.

Duração estimada: 2 horas

Cenário 1 – Movimentação Complexa de Dados – Comportamento Padrão para Edição de Desenvolvimento


Local dos arquivos iniciais: C:\HOL\DatabaseProjectGuidance\Integration with Custom Code and External Changes\ComplexDataMovement\Scenario1

Local dos arquivos finais: C:\HOL\DatabaseProjectGuidance\Integration with Custom Code and External Changes\ComplexDataMovement\Scenario1_Answer

Qual é o comportamento padrão da edição de banco de dados? Existem alguns caminhos possíveis. Se a tabela estiver vazia um comando ALTER TABLE será gerado. Senão, será feita uma tentativa de mover os dados, realizar as alterações e devolver os dados a tabela.


  • O que acontece se a tabela possuir dados?

  • O que acontece se a tabela possuir relacionamentos com chaves?

Neste cenário nós iremos preparar nosso exemplo e explorar o comportamento padrão da edição de banco de dados. Uma área para o início do laboratório é oferecida para servir de ponto de partida para o projeto. Copie este projeto para uma área de teste. Conforme for progredindo no laboratório, caso você trave em algum ponto, você poderá checar o projeto na área com o resultado final e revisar as diversas seções do laboratório.

Abra o projeto de exemplo



  1. Abra a solução

    1. Abra o Visual Studio 2010.

    2. No menu principal clique em File, clique em Open project e então vá até o projeto localizado em C:\HOL\DatabaseProjectGuidance\Integration with Custom Code and External Changes\ComplexDataMovement\Scenario1. Abra o arquivo SimpleDatabase.sln.

Se você navegar até o projeto SimpleDatabase (Selecione a pasta Schema Objects/Schemas/Dbo/Tables sob o projeto) você irá perceber que ele descreve uma estrutura de banco de dados conforme abaixo. (Figura 59)

Figura 59 Diagrama de ER dos objetos incluídos no schema



Faça o Build e Deploy da solução

  1. No Solution Explorer, clique com o botão direito no projeto SimpleDatabase e selecione Properties.

  2. Defina a opção Deploy action para Create a deployment script (.sql) and deploy to the database.

  3. Especifique a conexão SQL para a instância de banco de dados de destino clicanco em Edit. Digite “.” no campo server name e SimpleDatabase para o nome do banco de dados.

  4. Verifique se as opções estão como na Figura 60.

Figura 60 Opções de Deployment para o projeto SimpleDatabase



  1. No Solution Explorer, clique com o botão direito no projeto SimpleDatabase e selecione Deploy.

Agora que temos um banco de dados vazio nós podemos explorar o comportamento da edição do banco de dados conforme formos fazendo as mudanças. Nós iremos dedicar um bom tempo avaliando a saída da engine de deployment, logo iremos alterar a ação de Deploy para que o script seja apenas gerado.

Faça alterações no projeto e avalie o script de deployment



  1. Defina a ação de Deploy

    1. No Solution Explorer, clique com o botão direito no projeto SimpleDatabase e selecione Properties.

    2. Altere o campo Deploy action para Create a deployment script (.sql).



  1. Adicione uma coluna NOT NULL na tabela Companies

    1. Abra o arquivo Companies.table.sql expandindo a pasta Schema Objects, Schemas, dbo, Tables.

    2. Adicione o atributo NOT NULL na coluna LanguageLocale. O script deve ficar igual ao abaixo:

CREATE TABLE [dbo].[Companies]

(

Id int NOT NULL,



ParentId int NULL,

Name nvarchar(100) NOT NULL,

LanguageLocale nvarchar(5) NOT NULL

)


  1. Faça o deploy do projeto

    1. Clique com o botão direito na solução de banco de dados e clique em Deploy para fazer o deploy para o banco de dados especificado. Você verá o progresso do deployment na janela Output do Visual Studio. Ao final da saída registrada na janela output você verá uma seção Deployment script generated to: que contém o caminho para o arquivo .sql contendo as instruções de alteração do banco de dados.

    2. Abra o arquivo .sql gerado localizado no caminho indicado na janela output.

NOTA

Há dois comportamentos que precisamos notar:



  • A engine detecta que você está adicionando uma coluna NOT NULL sem DEFAULT e exibe um alerta de que o deployment irá falhar caso já existam dados na tabela. O alerta aparece na janela Output conforme a seguir: "Warning SQL01270: The column LanguageLocale on table [dbo].[Companies] must be changed from NULL to NOT NULL. If the table contains data,..."

  • O comportamento padrão é gerar um script com a instrução ALTER.

Este comportamento é esperado, mas não é interessante uma vez que não temos nenhum dado na tabela. Vamos então popular as tabelas com dados para que seja possível visualizar o que acontece neste caso.

Popule a tabela com dados de exemplo


  1. Remova a coluna LanguageLocale

    1. Abra o arquivo Companies.table.sql expandindo a pasta Schema Objects, Schemas, dbo, Tables.

    2. Remova a coluna LanguageLocale deletando o código relevante do script. O resultado deve ser como abaixo:

CREATE TABLE [dbo].[Companies]

(

Id int NOT NULL,



ParentId int NULL,

Name nvarchar(100) NOT NULL



)

    1. Certifique-se de que o a ação de deployment esteja configurada para fazer o deploy. No Solution Explorer, clique com o botão direito no projeto SimpleDatabase e clique em Properties. Na aba Deploy, o campo Deploy action deve ser alterado para Create a deployment script (.sql) and deploy to the database.

    2. Clique com o botão direito na solução e selecione Deploy para publicar as alterações no banco de dados especificado.



  1. Gere dados de exemplo



    1. No Solution Explorer, abra a pasta Data Generation Plans.

    2. Dê um duplo-clique no arquivo SampleData.dgen. O plano de geração de dados sera aberto e você irá visualizar uma prévia dos dados que serão gerados. (Figura 61)

Catálogo: 2012
2012 -> Fapesp e inpe promovem workshop para discutir relatório do ipcc sobre Riscos de Extremos Climáticos e Desastres nas Américas do Sul e Central
2012 -> Anima Mea Concerto no Convento Corpus Christi, 14junho2015
2012 -> Branches e merge com Visual Studio Team Foundation Server 2012
2012 -> Perfil: Time de Qualidade, Testadores
2012 -> Lista de Biologia Vanessa / Frente a volume 2
2012 -> CÂmara municipal de sapopema estado do paraná cnpj: 77. 774. 487/0001-94 Av. Manoel Ribas, 520, cep – 84. 294-000 Fone/Fax (43) 3548-1258
2012 -> Instituto nacional de estudos e
2012 -> Gabinete do ministro
2012 -> Indice de leis complementar 2012 lei 114 À 154 lei complementar 114 de 19 de janeiro de 2012
2012 -> Agenda do presidente do Ibram, Angelo Oswaldo de Araújo Santos 30 de dezembro de 2014

Baixar 7.59 Mb.

Compartilhe com seus amigos:
1   ...   29   30   31   32   33   34   35   36   ...   62




©bemvin.org 2020
enviar mensagem

    Página principal
Prefeitura municipal
santa catarina
Universidade federal
prefeitura municipal
pregão presencial
universidade federal
outras providências
processo seletivo
catarina prefeitura
minas gerais
secretaria municipal
CÂmara municipal
ensino fundamental
ensino médio
concurso público
catarina município
Dispõe sobre
reunião ordinária
Serviço público
câmara municipal
público federal
Processo seletivo
processo licitatório
educaçÃo universidade
seletivo simplificado
Secretaria municipal
sessão ordinária
ensino superior
Relatório técnico
Universidade estadual
Conselho municipal
técnico científico
direitos humanos
científico período
espírito santo
pregão eletrônico
Curriculum vitae
Sequência didática
Quarta feira
prefeito municipal
distrito federal
conselho municipal
língua portuguesa
nossa senhora
educaçÃo secretaria
segunda feira
Pregão presencial
recursos humanos
Terça feira
educaçÃO ciência
agricultura familiar