Apostila Visual Studio 2010 Database Projects

Embed Size (px)

Citation preview

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    1/174

    Visual Studio ALMRangers

    Documentao:Projetos de Bancode Dados no Visual

    Studio 2010La orat!rios

    2010-10-12Visual Studio ALM Rangers

    Microso"t #or$oration

    Visual Studio ALM RangersEste contedo foi criado pelo Visual Studio ALM Rangers, um grupo especial formado pormembros do time de produto do Visual Studio, Microsoft Ser ices, Microsoft Most Valued!rofessionals "MV!s# e l$deres da comunidade de Visual Studio%

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    2/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    A informa'(o contida neste documento representa a is(o atual da Microsoft orporation sobre osassuntos discutidos na data de sua publica'(o% omo a Microsoft de e responder a mudan'as dascondi'.es de mercado, n(o de e ser interpretado como um comprometimento de parte da Microsoft ea Microsoft n(o pode garantir a precis(o da informa'(o ap s a data de publica'(o%Este documento tem /ns informati os% A M R S 3 45 &6 7ARA43 AS, E8!RESSA, M!L9 3A :

    ES3A3:36R A RE ERE43E ;S 4 RMA%0 License% 3odos os demais direitos reser ados% 200? Microsoft orporation%Microsoft, Acti e &irector@, E cel, nternet E plorer, SBL Ser er, Visual Studio, e CindoDs s(o marcasregistradas do grupo de empresas Microsoft%

    3odas as outras marcas s(o de propriedade dos respecti os propriet rios%

    op@rigFt 200? Microsoft orporation !age 2

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    3/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    &ndiceAcrGnimos%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Iist rico do &ocumento%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%olaboradores%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Re isores%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ntrodu'(o%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Vis(o 7eral%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Visual Studio ALM Rangers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!r -re uisitos%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    7erenciamento de Solu'(o e !ro*eto%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Refatorando uma Solu'(o do Visual Studio &atabase para Fabilitar c digo compartilFado%%%%%%%%%%%%%

    b*eti os do cen rio)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    !asso 1) E amine os bancos de dados f$sicos com c digo e ob*etos sobrepostos%%%%%%%%%%%%%%%%%!asso 2) !repare a Solu'(o de +anco de &ados%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso >) Refatorar ReferNncias e &ependNncias do +anco de &ados%%%%%%%%%%%%%%%%%%%%%%!asso O) Refatore a Solu'(o para Fabilitar !ro*etos !arciais%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso P) !ropague as mudan'as para os components de c digo compartilFado%%%%%%%%%%%%%%%%%%

    ontrole de digo- onte e 7erNncia de on/gura'(o%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Vis(o 7eral dos en rios)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    en rio Q1) Modelo de Branching para um nico 3ime%%%%%%%%%%%%%%%%%%%%%%%%%%%%ntrodu'(o%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    &e/ni'.es de Branch para este cen rio)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    !asso 1) riar um no o pro*eto para o banco de dados Ad entureCor s%%%%%%%%%%%%%%%%%%%%!asso 2) a'a o Fec in do no o pro*eto no 3eam oundation Ser er%%%%%%%%%%%%%%%%%%%%%!asso >) rie um brancF da solu'(o%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso O) a'a o deploy da solu'(o de banco de dados%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso P) aTendo o merge do branch "integrando altera'.es entre dois branches #%%%%%%%%%%%%%!asso H) SincroniTe as altera'.es do c digo com a ers(o atual do banco de dados%%%%%%%%%%%%%%%%

    en rio Q2) Modelo de +rancFing para Mltiplos 3imes%%%%%%%%%%%%%%%%%%%%%%%%%%%%&e/ni'.es de +rancF para este cen ro)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso 1) rie um branch a partir da solu'(o%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso 2) a'a altera'.es no pro*eto%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso >) a'a o merge das mudan'as do branch 3eam1 para o Main%%%%%%%%%%%%%%%%%%%%!asso O) a'a o merge das mudan'as do branch 3eam2 para o Main%%%%%%%%%%%%%%%%%%%%

    ntegrando Mudan'as E ternas com o Sistema de !ro*eto%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Mantendo Lin ed Ser ers no !ro*eto de +anco de &ados do Visual Studio%%%%%%%%%%%%%%%%%%%%%

    Resumo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%b*eti os do en rio%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    !asso 1) riar dois no os pro*etos, um referenciando o outro%%%%%%%%%%%%%%%%%%%%%%%%%

    op@rigFt 200? Microsoft orporation !age >

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    4/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Mo imenta'(o omple a de &ados%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Resumo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    b*eti os dos en rios%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%en rio 1 U Mo imenta'(o omple a de &ados U omportamento !adr(o para Edi'(o de

    &esen ol imento%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%en rio 2 U Mo imenta'(o omple a de &ados U Engana engine de deployment "Enfra uece ae periNncia atra s da &E, uebra o S como mastre, e gera uma des antagem deperformance#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    en rio > U Mo imenta'(o omple a de &ados U Resol a o !roblema de !erformance "4(o utiliTea deployment engine , S torna-se o mestre#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    en rio O U Mo imenta'(o omple a de &ados U ntegrar a Deployment Engine 3ratar con ers(ode dados e ternamente ao proe*to%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Automa'(o de Build e Deploy com !ro*etos de +anco de &ados no Visual Studio%%%%%%%%%%%%%%%%%%ntegra'(o Ci8 com Deployment de +anco de &ados%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Resumo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!r -re uisitos%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    b*eti os do en rio%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso 1) Estruturando a solu'(o%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso 2) riando a nforma'(o da Aplica'(o%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso >) on/gurando os redistribu$ eis%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso O U on/gurando pro*etos de banco de dados%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso P U Se uNncias e E press.es ondicionais%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso H U !ropriedades e nterface de :su rio " UI#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso J U ArmadilFas omuns%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    onclus(o%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    en rio de ntegra'(o com o Team Build %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Resumo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%b*eti os do en rio%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    !asso 1) rie uma de/ni'(o de build %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso 2) En/leire um no o build a partir da de/ni'(o%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso >) Veri/ ue o progresso dos builds %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Build e deploy fora do team build %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Resumo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    b*eti os do cen rio%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso 1) a'a o build do pro*eto de banco de dados com o MS+: L&%%%%%%%%%%%%%%%%%%%%%

    !asso 2) a'a o deploy do banco de dados com o VS&+ M&%%%%%%%%%%%%%%%%%%%%%%%% 3estes de +anco de &ados e Veri/ca'(o de Deployment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    en rio W+ sicoX de ria'(o de 3estes :nit rios%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Resumo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    b*eti os do en rio%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso 1) rie um teste unit rio a partir de um modelo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso 2) Adicione condi'.es de teste para o teste unit rio%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    op@rigFt 200? Microsoft orporation !age O

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    5/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    en rio WA an'adoX de ria'(o de 3estes :nit rios%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Resumo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    b*eti os do en rio%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso 1) on/gure o ambiente para mltiplos desen ol edores%%%%%%%%%%%%%%%%%%%%%%%%%

    !asso 2) Deployment do banco de dados de teste%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso >) 7erando dados de teste%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!asso O) 3estes de !erformance Simples%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    en rio U Encontrando Altera'.es de Modelo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Resumo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    b*eti os 7erais do en rio%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%en rio 1) 7aranta ue ocN testou seu banco de dados com a ers(o correta de produ'(o SEM

    ter acesso ao ambiente de produ'(o "Vers(o con/ el do &+A#%%%%%%%%%%%%%%%%%%%%%%%%%en rio 2) erti/ ue-se de ue ocN testou a aplica'(o de banco de dados com a ers(o obtida,

    M acesso ao banco de dados "Vers(o con/ el do desen ol edor#%%%%%%%%%%%%%%%%%%%%%ReferNncias%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    &ocumenta'(o 3 cnica de Design %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V$deos%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Lin s 7erais%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    op@rigFt 200? Microsoft orporation !age P

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    6/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Acr'nimosEste guia utiliTa os seguintes acrGnimos comuns)

    A#R()*M( D+S#R*,-(A3&3 Application 3ier, &ata 3ier "camada de aplica'(o, camada de dados#%

    op@rigFt 200? Microsoft orporation !age H

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    7/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    .ist!rico do Documento200?0P01 0%1 Cill@-!eter ScFaub riar um document base%

    200?0K11 1%0 Yens Z% S[\me@er :E Re is(o inaliTada

    #ola oradores

    SFisFir AbF@an er Microsoft , Senior &e elopment Engineer ] Visual Studio ALMRange

    Fris +urroDs Microsoft, SE4 R 4S:L3A43

    Larr@ 7uger MV!, Visual Studio ALM Ranger+arcla@ Iill Microsoft, Senior !rogram Manager, Visual Studio for +iTApps!ablo Rincon Microsoft, SoftDare &e elopment Engineer ] Visual Studio ALM

    RangeScott SFarpe Microsoft, SE4 R SoftDare &e elopment Engineer ] Visual

    Studio ALM Ranger Yens Z% S[\me@er Microsoft, Senior onsultant ] Visual Studio ALM RangerLeRo@ 3uttle Microsoft, Senior &e elopment Engineer ] Visual Studio ALM

    Range

    Re/isoresVisual Studio ALM Rangers Visual Studio ALM ore and E tended Rangers+i*an Ya idi Microsoft, Solution ArcFitect ] Visual Studio ALM Ranger

    op@rigFt 200? Microsoft orporation !age J

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    8/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    *ntroduoViso eral+em indo ao Visual Studio &atabase !ro*ects Iands-on Labs "I L#% s I Ls est(o aderentes estrutura da documenta'(o do Visual Studio &atabase !ro*ect 7uidance dispon$ el no odeple %AlinFados com a estrutura deste documento, os cen rios dos I Ls est(o di ididos nas seguintesse'.es)

    Se'(o de 7erenciamento de Solu'(o e !ro*eto ontrole de digo onte e 7erNncia de on/gura'(o ntegrando Mudan'as E ternas com o Sistema de !ro*eto Automa'(o de Build e Deploy com o Visual Studio &atabase !ro*ects 3estes de +anco de &ados e Veri/ca'(o de Deployment

    ada se'(o ir contribuir para o entendimento do t pico coberto no documento guia%

    Visual Studio ALM Rangers Visual Studio ALM Rangers um grupo especial formado por membros do grupo de produto do Visual

    Studio, da Microsoft Ser ices, Microsoft Most Valued !rofessionals "MV!# e L$deres da omunidade deVisual Studio% A miss(o deles pro er solu'.es adicionais para funcionalidades n(o implementadas eguias de uso%Este guia foi feito para usu rios n$ el Microsoft W200->00X do 3 S% grupo al o considerado deusu rios do 3eam oundation Ser er de n$ el intermedi rio para a an'ado e possui entendimento emprofundidade das funcionalidades do produto em um ambiente do mundo real% !artes deste guiapodem ser teis a no atos e experts no 3eam oundation Ser er, por m este n(o n$ el depro/ssional focado neste contedo%

    Pr re3uisitos!ara completar o passo a passo dos cen rios b sicos e a an'ados dos laborat rios ser necess rio oseguinte ambiente)

    Visual Studio ALM Rangers +ase mage "3R Iands- n-Lab#- ou

    :m nico ser idor "f$sico ou irtual# cu*o ambiente possua os seguintes softDares instalados econ/gurados)So"t4are Verso )otaSistema ($eracional CindoDs Ser er

    200KR 2 ainda n(o foi testado

    **S SJ Empacotado como parte do SS5L Ser/er SBL Ser er 200K

    S!1Recomenda-se Enterprise Edition

    6indo4s S7arePointSer/ices

    CSS >%0 S!2

    Microso"t (8ce _ce 200J S!1 Recomenda-se no m$nimo a ers(o!rofessional

    9eam oundation Ser/er 2010Visual Studio ;ltimate 2010

    op@rigFt 200? Microsoft orporation !age K

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    9/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    erenciamento de Soluo e Projeto

    Re"atorando uma Soluo do Visual Studio Data ase $ara7a ilitar c!digo com$artil7ado

    ( jeti/os do cen

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    10/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    SELECT SCHEMA_NAME( schema_id ) as SchemaName, name as ObjectName, type_desc as ObjectType

    FROM Rep !tSe!"e! # sys # bjects

    $HERE is_ms_shipped % &'NTERSECTSELECT SCHEMA_NAME( schema_id ) as SchemaName

    , name as ObjectName, type_desc as ObjectType

    FROM Rep !tSe!"e!Temp #sys # bjects $HERE is_ms_shipped % & *

    s resultados da e ecu'(o da uer@ de em estar similares a este)

    igura 1 Resultados da 3uer $ara locali ar o jetos similares

    :tiliTando a instru'(o 43ERSE 3 n s consultamos os ob*etos de sistema do banco Re$ortSer/er assim como do banco Re$ortSer/er9em$DB e encontramos ob*etos ue s(o comuns a ambos osbancos de dados% Este foi o ponto de partida utiliTado para selecionar os ob*etos em um pro*eto

    ual uer%

    )(9AEm geral se ocN uiser consolidar pro*etos para criar pro*etos compartilFados ocN ter ue secerti/car de ue a estrutura dos ob*etos idNntica% 4 s recomendamos ue ocN generaliTe ob*etos

    ue possuam scFemas idNnticos, como colunas, tipos de dados, e assim por diante% b*etos podem tero mesmo nome e n(o ser idNnticos por ue seus schemas podem ser diferentes%

    op@rigFt 200? Microsoft orporation !age 10

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    11/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo 2: Pre$are a Soluo de Banco de DadosaminFo dos ar ui os /nais) )`I L`&atabase!ro*ect7uidance`Solution!ro*ectMgmt`SFared ode`Step2

    &ura'(o estimada) 10 minutos

    #riar uma soluo e um $rojeto /a io do ti$o S5L Ser/er 200C Data ase

    Par metro Valor

    Solution SFared odeProject &atabase1

    1% Abra o Microsoft Visual Studio 2010 "edi'(o :ltimate ou !rofessional#%

    2% 4o menu principal cli ue em ile , )e4 , Project %

    >% 4o painel nstalled 3emplates, e panda o n Data aseE cli ue em S5L Ser/er e depois emS5L Ser/er 200C Data ase Project %

    O% 4a cai a de te to )ame digite o seguinte te to) Data ase1 %

    P% 4a cai a de te to Solution )ame digite S7ared#ode e cli ue no bot(o (F %

    H% 4o menu principal cli ue em ileE Sa/e All %

    +ngen7aria re/ersa do anco de dados GRe$ortSer/er9em$DBH no $rojeto Data ase1

    Par metro Valor

    Project &atabase1

    Server %Database ReportSer er3emp&+

    op@rigFt 200? Microsoft orporation !age 11

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    12/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    1% 4o Solution E plorer, cli ue com o bot(o direito em Data ase1 e cli ue em Pro$erties %

    2% 4a aba Data ase1 , selecione o cFec bo *nclude sc7ema name in @le name " igura 2#%

    igura 2 Altere as $ro$riedades do $rojeto $ara incluir o nome do schema

    >% 4o Solution E plorer, cli ue com o bot(o direito em Data ase1 e cli ue em *m$ortData ase ( jects and Settings %

    O% 4o mport &atabase CiTard cli ue em )e4 #onnection

    P% 4o di logo#onnection Pro$erties , no combo Ser/er )ame digite um ponto /nal "%#

    H% 4o comboSelect or enter data ase name selecione o banco de dadosRe$ortSer/er9em$DB%

    J% li ue em(F %K% 4o mport &atabase CiTard cli ue no bot(o Start %

    ?% Buando o processo de importa'(o dos ob*etos terminar ocN er a mensagem W lic inisF tocontinue%X li ue em inis7%

    10% 4o menu principal cli ue em ile , Sa/e All %

    +ngen7aria re/ersa do anco de dados GRe$ortSer/erH em um no/o $rojeto

    Par metro Valor

    Project &atabase2Server %Database ReportSer er

    op@rigFt 200? Microsoft orporation !age 12

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    13/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    1% 4o Solution E plorer, cli ue com o bot(o direito em Solution IS7ared#odeJ K1 $roject ,cli ue em Add e cli ue em )e4 Project %

    2% 4o di logoAdd )e4 Project , con/rme ue S5L Ser/er 200C Data ase Project est

    selecionado%>% 4a cai a de teste )ame digite Data ase2 e cli ue em (F %

    O% 4o Solution E plorer, cli ue com o bot(o direito em Data ase2 , e cli ue em Pro$erties %

    P% 4a aba Data ase2 , selecione o cFec bo *nclude sc7ema name in @le name %

    H% 4o Solution E plorer, cli ue com o bot(o direito em Data ase2 e cli ue em *m$ortData ase ( jects and Settings %

    J% 4o mport &atabase CiTard cli ue em )e4 #onnection %

    K% 4o di logo onnection !roperties, no combo Ser/er )ame digite um ponto /nal " %#

    ?% 4o combo Select or enter data ase name , selecione o banco de dados Re$ortSer/er e

    cli ue em(F

    %10% 4o mport &atabase CiTard cli ue em Start %

    11% Buando o processo de importa'(o dos ob*etos terminar ocN er a mensagem W lic inisF tocontinue%X li ue em inis7 %

    12% 4o menu principal, cli ue ileE Sa/e All %

    Determine 3uais ta elas so comuns nos $rojetos de anco de dados originais

    Par metro Valor

    Source SchemaProject &atabase1Target SchemaProject

    &atabase2

    Equal tables dbo% Fun &ata,dbo% Fun SegmentMapping, dbo%Segment

    op@rigFt 200? Microsoft orporation !age 1>

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    14/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    1% 4o menu principal, cli ue Data , cli ue Sc7ema #om$are , e cli ue em )e4 Sc7ema#om$arison %

    2% 4o di logo)e4 Sc7ema #om$arison " igura >#, eri/ ue ue o alor do campo Source

    Sc7ema Project est de/nido com Data ase1 , e ue o campo 9arget Sc7ema Project est com o alor Data ase2% li ue em (F%

    igura )o/a com$arao de sc7emas $ara encontrar os o jetos e3ui/alentes>% 4a *anela principal selecione a no a aba criada Sc7ema#om$are1 %

    O% 4o menu principal, cli ue Data , cli ue Sc7ema #om$are , cli ue ilter e cli ue em +3ual( jects %

    P% 4a aba Sc7ema#om$are1 , inspecione e tome nota das tabelas ue possuem de/ni'.ese ui alentes nos dois pro*etos de banco de dados% A aba ScFema ompare de er estar similara igura O%

    igura N Resultado da com$arao de Sc7ema

    H% ecFe a abaSc7ema#om$are1 clicando no O ao lado da aba% Buando for solicitado, descarteas altera'.es realiTadas em Sc7ema#om$are1 "n(o necess rio sal ar o ar ui o#%

    J% 4o menu principal cli ue em ileE Sa/e All %

    op@rigFt 200? Microsoft orporation !age 1O

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    15/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    )(9ANa prtica, a sele !o de ob"etos e c#digo reutili$veis deve ser %eita como parte de uma decis!odeliberada de design& ' processo de compara !o de schema exibido anteriormente pode ser utili$ado

    para auxiliar essa decis!o& Contudo, n!o deve ser o (nico m)todo utili$ado para reali$ar esta tare%a*

    +ngen7aria re/ersa das estruturas das ta elas comuns em um no/o $rojeto

    Par metro Valor

    Project &atabase>Shared tables dbo% Fun &ata,

    dbo% Fun SegmentMapping, dbo%Segment

    1% 4o Solution E plorer, cli ue com o bot(o direito em Solution IS7ared#odeJ K2 $rojects ,cli ue em Add e cli ue em )e4 Project %

    2% 4o di logoAdd )e4 Project , con/rme ue S5L Ser/er 200C Data ase Project estselecionado%

    >% 4a cai a de te to )ame digite Data ase e cli ue em (F %

    O% 4o painel Solution E plorer, cli ue com o bot(o direito em Data ase , e cli ue emPro$erties %

    P% 4a aba Data ase , selecione o cFec bo *nclude sc7ema name in @le name %

    H% 4o Solution E plorer, cli ue com o bot(o direito em Data ase e cli ue em *m$ort Scri$t %

    J% 4o di logo WCelcome to tFe mport SBL Script CiTardX, cli ue em )e>t %

    K% 4o di logo WSelect SBL Script ile to mport DiTardX selecione a op'(o Multi$le @les e cli ueem Bro4se %

    ?% 4o di logo W!arent &irector@ for SBL ScriptsX at#:=;sers=Administrator=Documents=Visual Studio2010=Projects=S7ared#ode=Data ase1=Sc7ema ( jects= e cli ue na pasta Sc7emas %&epois cli ue em Select older %

    10% 4o di logo WSelect SBL Script ile to mportX sob o itemMulti$le @les na r ore de items,desmar ue o n raiT e e panda totalmente o n 9a les %

    op@rigFt 200? Microsoft orporation !age 1P

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    16/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    11% 4a r ore de ar ui os abai o do n 9a les " igura P#, selecione todos os 1O ar ui os sob on s 9a les , #onstraints , *nde>es , e Fe s ue este*am relacionados s tabelasd o%#7un Data , d o%#7un SegmentMa$$ing , e d o%Segment % &epois cli ue em

    inis7 %

    igura Q Selecione os ar3ui/os $ara im$ortar no 4i ard

    12% Buando o processo de importa'(o dos ob*etos esti er /naliTado ocN er a mensagem W licinisF to continue%X li ue em inis7 %

    1>% 4o menu principal cli ue ileE Sa/e All%

    Adicione um V*+6 $ara ser com$artil7ada 3ue de$enda de um o jeto de sistemaPar metro Valor

    Project &atabase>View name dbo% DRoD ounts

    op@rigFt 200? Microsoft orporation !age 1H

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    17/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    1% 4o Solution E plorer, e panda a r ore e para o n Solution IS7ared#odeJ K $rojects ,Data ase , Sc7ema ( jects , Sc7emas , d o , Vie4s %

    2% li ue com o bot(o direito no n Vie4s , cli ue Add , e ent(o cli ue em Vie4 %

    >% 4o di logoAdd )e4 *tem Data ase , certi/ ue-se ue Vie4 est selecionado%O% 4a cai a de te to )ame digite d o%/4Ro4#ounts e cli ue em Add %

    P% 4a aba d o%/4Ro4#ounts%/ie4%s3l digite o seguinte c digo 3SBL)

    REA3E V EC dbo%DRoD ountsASSELE 3 %ob*ect id

    ,S IEMA 4AME" %scFema id# as ScFema4ame, %name as b*ect4ame,8%roDs as 4umRecs

    R M s@s%partitions as 8 C 3I "4 L Z # 44ER Y 4 s@s%ob*ects as C 3I "4 L Z #

    4 8%ob*ect id %ob*ect id CIERE 8%inde id 1 A4& %is ms sFipped 0

    H% 4o menu principal, cli ue em ile , Sa/e All %

    J% 4ote ue o Error List agora mostra mensagens sobre as referNncias n(o encontradas paras@s%ob*ects e s@s%partitions%

    op@rigFt 200? Microsoft orporation !age 1J

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    18/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo : Re"atorar Re"er ncias e De$end ncias do Banco de DadosAgora ue montamos os componentes iniciais em pro*etos separados n s precisamos refatorardependNncias e referNncias fortemente acopladas de forma ue os pro*etos possam ser compilados

    *untos formando uma solu'(o coesa% Antes ue o c digo compartilFado possa ser in*etado nessespro*etos eles precisam compilar indi idualmente sem erros%

    Local dos ar ui os iniciais))`I L`&atabase!ro*ect7uidance`Solution!ro*ectMgmt`SFared ode`Step2 AnsDer

    Local dos ar ui os /nais) )`I L`&atabase!ro*ect7uidance`Solution!ro*ectMgmt`SFared ode`Step> AnsDer

    &ura'(o estimada) 20 minutos

    #on@gure o $rojeto startu$ e lo3ueie o de$lo ment do $rojeto s7ared code1% 4o Solution E plorer, cli ue com o bot(o direito em Solution IS7ared#ode K $rojects , e

    cli ue em Pro$erties % A p gina de propriedades da solu'(o ir aparecer " igura H#%2% 4o di logoSolution IS7ared#odeJ Pro$ert Pages , selecione a op'(o Single startu$

    $roject e ent(o selecione o pro*eto Data ase no mesmo combo%

    >% 4o painel es uerdo, cli ue em #on@guration Pro$erties %

    O% 4a lista#on@gurationE selecione All #on@gurations %

    P% 4o painel direito, desmar ue o cFec bo De$lo para o Data ase pro*ect e cli ue em (F %

    igura T De@na as aUes de Build e Deployment $ara os $rojetos

    )(9A4a pr tica ocN pode dese*ar ariar as outras op'.es da solu'(o por tipo de con/gura'(o, isto ,debug s% release% ontudo, normalmente ocN n(o ir dese*ar realiTar deplo@ do pro*eto sFared codea n(o ser ue este*a realiTando testes unit rios contra ele%

    op@rigFt 200? Microsoft orporation !age 1K

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    19/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Adicione re"er ncias a d sc7emas e>ternos $ara resol/er o jetos de sistema do S5LSer/er

    Par metro Valor

    Projects &atabase> &atabase2master DB s@s%ob*ects

    s@s%partitionsdbo% p s lagent enum *obsdbo%s@sob*ects

    msdb DB dbo%s@s*obsSp delete *ob

    1% :tiliTando o CindoDs E plorer, crie uma no a sub-pasta abai o da pasta da solu'(o

    "#:=;sers=Administrator=Documents=/isual studio 2010=Projects=S7ared#ode `#cFamada) DBS#.+MA

    2% opie os ar ui os dbscFema para os ob*etos de bancos de dados master e msdb a partir de#:=Program iles=Microso"t Visual Studio10%0=VS9SDB=+>tensions=S3lSer/er=200C=DBSc7emas na pasta criada no passo anterior%

    >% 4o Solution E plorer, cli ue com o bot(o direito em Solution IS7ared#odeJ K $rojects ,cli ue em Add e ent(o cli ue em Add +>isting *tem %

    O% 4o di logoAdd +>isting *tem , para a pasta criada no passo 1, selecione os ar ui osmaster%d sc7ema e msd %d sc7ema % li ue emAdd %

    P% 4o Solution E plorer, e panda a r ore e at o n Solution IS7ared#odeJ K $rojects ,Data ase , Re"erences %

    H% li ue com o bot(o direito no n Re"erences , cli ue em Add Data ase Re"erence %

    J% 4o di logoAdd Data ase Re"erence , selecione a op'(o Data ase $roject sc7emaK%d sc7ema e cli ue em Bro4se %

    K% 4o di logoSelect Data ase ile , para a pasta criada no passo 1 e dN um duplo-cli ue noar ui o master%d sc7ema %

    ?% li ue(F% 4ote algum tempo necess rio ao processamento de todo o contedo dodbscFema%

    10% Repita os passos de P a ?, por m desta eT adicione a referNncia para master%d sc7ema nopro*eto Data ase1 %

    11% Repita os passos de P a ?, por m desta eT adicione a referNncia para master%d sc7ema nopro*eto Data ase2 %

    12% Repita os passos de P a ?, por m desta eT adicione a referNncia para msd %d sc7ema nopro*eto Data ase2 %

    1>% 4o menu principal cli ue em BuildE Re uild Solution %

    1O% 4o menu principal cli ue em ileE Sa/e All %

    op@rigFt 200? Microsoft orporation !age 1?

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    20/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Parametri e os nomes dos o jetos de terceiros com re"er ncia a Data ase Sc7emasParameter Value

    Project &atabase2Variable name "ReportSer er3emp&+#

    Variable value ReportSer er3emp&+

    1% 4o Solution E plorer, e panda a r ore e at o n Solution IS7ared#odeJ K $rojects ,Data ase2 , Re"erences %

    2% 4a r ore do Solution E plorer, cli ue com o bot(o direito no n Re"erences e cli ue AddData ase Re"erence%

    >% 4o di logoAdd Data ase Re"erence " igura J #, selecione o cFec bo De@ne data ase/aria le %

    O% 4o listaData ase $rojects in t7e current solution , selecione Data ase1 %

    P% Abai o do cFec bo De@ne data ase /aria le , na cai a de te to )ame digite)

    KRe$ortSer/er9em$DB %H% 4o cai a de te toValue , digite) Re$ortSer/er9em$DB %

    J% Selecione o cFec bo ;$date t7e e>isting sc7ema o ject de@nitions and scri$ts to uset7e data ase re"erence /aria les , e cli ue em (F %

    igura W Adicione uma re"er ncia ao $rojeto Data ase1 $ara resol/er os $ro lemasde resoluo de nomes

    op@rigFt 200? Microsoft orporation !age 20

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    21/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    K% 4o di logoPre/ie4 #7anges Rename Ser/er or Data ase , re e*a as mudan'aspendentes e cli ue em A$$l %

    ?% 4o menu principal, cli ue em Build e depois cli ue em Re uild Solution %

    10% 4o menu principal, cli ue em ile , Sa/e All %

    op@rigFt 200? Microsoft orporation !age 21

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    22/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    (timi e as re"er ncias ao d sc7ema e>terno $ara os o jetos de sistema do S5L Ser/er

    )(9A

    VocN de e notado ue necess rio algum tempo para alidar e processar cada referNncia feita pelospro*etos aos ar ui os master%dbscFema ou msdb%dbscFema% sso se de e ao grande nmero deob*etos de/nidos em cada um desses ar ui os, a maioria dos uais n(o s(o necess rios nesta solu'(o%4a pr tica ocN de e faTer uma c pia desses ar ui os por solu'(o e edit -los para remo er todas asreferNncias a ob*etos n(o utiliTados%

    Par metro Valor

    master.dbschema

    3@pe X S l100&atabase ptionsX4ame Xhs@s %hob*ects X4ame Xhs@s %hpartitions X4ame Xhs@s %hs@sob*ects X4ame Xhdbo %h p s lagent enum *obs X

    msdb.dbschema

    3@pe X S l100&atabase ptionsX4ame Xhdbo %hsp delete *ob X4ame Xhdbo %hsp erif@ *ob identi/ers X4ame Xhdbo %hs@s*obs X

    1% 4o Solution E plorer, e panda a r ore e at o n Solution IS7ared#odeJ K $rojects ,Solution *tems %

    2% &N um duplo-cli ue no ar ui omaster%d sc7ema para editar o seu contedo 8ML%

    >% 4a aba master%d sc7ema , sob element 8ML Modelj, delete todas as entidadesElement j ue n(o se encai am no padr(o listado na tabela acima% 4 s sugerimos ue ocN

    recorte e cole os elementos dese*ados do topo do documento, diretamente abai o do nModelj% Ap s isso, delete o restante das entidades Element j%

    O% Repita os passos 2-> para o ar ui os msd %d sc7ema e seus alores%

    P% 4o menu principal, cli ue em Build e ent(o em Re uild Solution % inalmente, eri/ ue seocN n(o introduTiu no os erros ou alertas%

    op@rigFt 200? Microsoft orporation !age 22

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    23/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Algumas lim$e as no $rojeto

    )(9A

    I tamb m uma referNncia amb$gua para uma proc de sistema contida no banco de dadosmsdb no mesmo pro*eto "a referNncia n(o especi/ca o oDner da S!# ent(o amos corrigir oproblemak

    1% 4o Solution E plorer, e panda a r ore e at o n Solution IS7ared#odeJ K $rojects ,

    Data ase2E Sc7ema ( jectsE Sc7emas ,d o , Programma ilit , Stored Procedures %

    2% li ue com o bot(o direito em d o%Migration+>ecutionLog%$roc%s3l , e ent(o cli ue em+>clude "rom Project %

    )(9A

    I uma stored procedure com uma referNncia n(o resol ida para um ob*eto rf(o em nopro*eto &atabase2 "ReportSer er#% !ro a elmente este problema n(o e istiria se osdesen ol edores originais esti essem usando o VS&+k Vamos e clu$-la do pro*eto de forma

    ue o problema n(o nos distraia dos ob*eti os do laborat rio%

    1% 4o menu principal, cli ue em Vie4 , +rror List%

    2% 4o painel Error List, dN um duplo-cli ue no alerta SBL0O1P1 referente ao ar ui odbo%7et s lagent *ob status%proc%s l%

    >% orri*a o erro alterando a cFamada a S! utiliTando o nome totalmente uali/cado "full@-uali/ed name#)

    E8E :3E ret al msdb %%sp erif@ *ob identi/ersde e ser alterado paraE8E :3E ret al msdb %dbo%sp erif@ *ob identi/ers

    O% 4o menu principal, cli ue em Build e ent(o em Re uild Solution %

    P% 4o menu principal, cli ue ileE All%

    *MP(R9A)9+A solu'(o de e compilar por completo sem nenFum erro ou alertas% importante ter as coisasfuncionando bem nesse passo antes de partirmos para a implementa'(o dos ar ui os depro*etos parciais% Se n(o ti ermos um estado limpo "sem erros ou alertas# pode ser maiscomplicado identi/car os problemas ap s a implementa'(o dos ar ui os de pro*etos parciais%

    op@rigFt 200? Microsoft orporation !age 2>

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    24/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo N: Re"atore a Soluo $ara 7a ilitar Projetos ParciaisLocal dos ar ui os iniciais)

    )`I L`&atabase!ro*ect7uidance`Solution!ro*ectMgmt`SFared ode`Step> AnsDerLocal dos ar ui os /nais)

    )`I L`&atabase!ro*ect7uidance`Solution!ro*ectMgmt`SFared ode`StepO AnsDer&ura'(o Estiamada) 1P minutos

    Veri@3ue 3ue os o jetos nos c!digo com$artil7ado no iro $ro$agar erros1% 4o Solution E plorer, cli ue com o bot(o direito no pro*eto Data ase e ent(o cli ue em

    Pro$erties %

    2% 4a aba Data ase , selecione a p gina #ode Anal sis %

    >% 4o painel da direita, selecione o cFec bo +na le #ode Anal sis on Build %

    O% 4o menu principal, cli ue em Build e em Re uild Data ase %

    P% 4o painel utput, eri/ ue ue o build do pro*eto foi bem sucedido%

    H% 4o painel Error List, corri*a todos os erros e alertas de an lise de c digo, caso Fa*a algum%

    J% 4o menu principal, cli ue em ile , Sa/e All %

    +>$orte os o jetos com$artil7ados como uma de@nio de ar3ui/o de $rojeto $arcial1% 4o Solution E plorer, cli ue com o bot(o direito em Data ase e ent(o cli ue em +>$ort As

    Partial Project

    2% 4o di logoSa/e As , cli ue em )e4 older , e depois digite) Partial Projects +>$ort %>% 4a cai a de te to ile name , digite) S7ared ( jects e ent(o cli ue Sa/e %

    O% 4o di logo doMicroso"t Visual Studio entitulado Do ou 4ant to add t7is $artial $roject@le to our current $rojectX cli ue em Yes %

    Re"atore a con@gurao $adro do ar3ui/o de $rojeto $arcial1% 4o Solution E plorer, abai o de Data ase , Partial Projects +>$ort , dN um duplo-cli ue em

    S7ared ( jects%@les %

    2% 4o di logo*nconsistent Line +ndings , cli ue em Yes %

    >% 4a aba S7ared ( jects%@les , tome nota do nome da propriedade referenciada no coment riono topo do ar ui o de e ser algo como Data ase BasePat7ZOOZOZOOOZOZOOZOOZOO%

    O% Encontre e substitua todas as ocorrNncias do alor do nome desta propriedade porData ase BasePat7 % Altere 1? inst ncias desse alor%

    P% Encontre e substitua todas as ocorrNncias de [Lin \Data ase BasePat7=J porI[Lin \Partial Projects *m$ort=S7ared ( jects= % Altere ? inst ncias do alor%

    H% 4o menu principal, cli ue em ile , Sa/e All %

    op@rigFt 200? Microsoft orporation !age 2O

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    25/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    J% ecFe a aba SFared ( jects%@les %

    *m$orte os ar3ui/os $arciais de $rojeto e elimine os con]itos de re"er ncias noresol/idas

    1% 4o Solution E plorer, cli ue com o bot(o direito em Data ase2 e ent(o cli ue em *m$ortPartial Project %

    2% 4o di logo doMicroso"t Visual Studio entitulado *ncluding a $artial $roject 4ill causet7e $roject to load and unload% Do ou 4ant to sa/e our $roject and continueXcli ue em Yes %

    >% 4o di logo($en , para a pasta %%=Data ase =Partial Projects +>$ort e dN um duplo-cli ue em S7ared ( jects%@les %

    O% 4o menu principal, cli ue em Vie4 e ent(o em +rror List%

    op@rigFt 200? Microsoft orporation !age 2P

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    26/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    )(9AAo importar os ar ui os parciais de pro*eto do pro*eto &atabase> no pro*eto &atabase2, n s defato duplicamos os ob*etos para cada ob*eto compartilFado U a ueles ue importamos e os ue

    foram identi/cados uando /Temos a compara'(o dos es uemas de banco de dados entre ospro*etos &atabase1 e &atabase2% Estas entradas duplicadas resultaram em di ersos erros dereferNncias n(o resol idas "SBL0>00H# os uais precisam ser corrigidos remo endo os ob*etosoriginais do pro*eto &atabase2 e mantendo os ob*etos importados%

    P% 4o Solution E plorer, e panda o n Data ase2 e e panda os seguintes n s) Sc7emas , d o ,9a lesE d o%#7un Data%ta le%s3l %

    H% li ue com o bot(o direito em d o%#7un Data%ta le%s3l , cli ue em Vie4 ( ject inSc7ema Vie4 e ent(o cli ue em #7un Data %

    )(9AE istem duas entradas para esta tabela, ambas pre/ adas por um $cone de erro% VocN precisa

    iTualiTar as propriedades de cada uma delas e e cluir a ue este*a na estrutura de pastas dopro*eto &atabase2, mantendo a outra de/ni'(o referente ao pro*eto compartilFado &atabase>%

    J% li ue com o bot(o direito em #7un Data , e ent(o cli ue em Pro$erties %

    K% 4o painel de propriedades, e amine o alor da propriedade ull Pat7 % aso ela este*a faTendoreferNncia ao caminFo do pro*eto Data ase2 , delete a entidade #7un Data % aso contr rio,inspecione e delete a outra entidade #7un Data %

    ?% Repita os passos J-K para as tabelas #7un SegmentMa$$ing e Segment %

    10% 4o menu principal, cli ue Build e ent(o cli ue em Re uild Data ase2 %

    11% E amine o contedo do painel Error List e repita os passos J-K para cada no o ob*eto cFa e,constraint , $ndice no pro*eto &atabase2%

    12% 4o menu principal, cli ue Build e depois em Re uild Data ase2 %

    1>% 4a *anela utput, eri/ ue se a compila'(o do pro*eto foi bem sucedida%

    1O% 4o painel Error, certi/ ue-se de ue n(o F erros ou alertas%

    1P% 4o menu principal, cli ue em ile e ent(o em Sa/e All %

    1H% Repita os passos 1-1O, mas desta eT, importe os ar ui os parciais do pro*eto &atabase> noData ase1 %

    op@rigFt 200? Microsoft orporation !age 2H

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    27/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    +>ercite di"erentes n?/eis de granularidade do uild1% 4o Solution E plorer, cli ue com o bot(o direito Data ase e cli ue em Re uild %

    2% li ue com o bot(o direito em Data ase e ent(o cli ue em ;nload Project %

    >% li ue com o bot(o direito em Data ase1 e ent(o cli ue em Re uild %O% li ue com o bot(o direito em Data ase2 e ent(o cli ue em Re uild %

    P% 4o menu principal, cli ue Build e ent(o cli ue em Re uild Solution %

    )(9A

    om este tipo de build ocN ir notar ue atualmente n s n(o precisamos ue a solu'(o&atabase> compile os outros dois pro*etos referenciados% pro*eto parcial referenciado apartir dos ar ui os de pro*eto e ocN n(o precisa incluir o pro*eto &atabase> na sua solu'(o%

    op@rigFt 200? Microsoft orporation !age 2J

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    28/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo Q: Pro$ague as mudanas $ara os com$onents de c!digo com$artil7adoAgora ue n s refatoramos e consolidamos o c digo compartilFado em um pro*eto comum, n spodemos com facilidade realiTar mudan'as a estas estruturas de forma centraliTada eautomaticamente propagar estas mudan'as para os pro*etos dependentes%

    Local dos ar ui os iniciais)

    )`I L`&atabase!ro*ect7uidance`Solution!ro*ectMgmt`SFared ode`StepO AnsDerLocal dos ar ui os /nais)

    )`I L`&atabase!ro*ect7uidance`Solution!ro*ectMgmt`SFared ode`StepP AnsDer&ura'(o Estimada) 10 minutos

    Altere uma /ie4 no $rojeto com$artil7ado1% 4o painel Solution E plorer, e panda a r ore e para Solution IS7ared#odeJ K

    $rojects , Data ase % " aso o pro*eto este*a descarregado do passo O neste cen rio, cli uecom o bot(o direito no n do pro*eto e selecione Reload Project %# Ap s, cli ue no nSc7ema ( jects , Sc7emas , d o , Vie4s , e ent(o efetue um duplo-cli ued o%/4Ro4#ounts%/ie4%s3l %

    2% 4a aba dbo% DRoD ounts% ieD%s l, edite a de/ni'(o da ieD e adicione uma no a colunacFamada &atabase4ame ue retorne &+ 4AME"# como seu alor%

    >% 4o menu principal, cli ue em Build e selecione Re uild Data ase %

    O% 4o painel(ut$ut , eri/ ue ue o build do pro*eto foi bem sucedido, sem erros ou alertas%

    P% 4o menu principal, cli ue em Build e ent(o em Build Solution %

    H% 4o painel(ut$ut , eri/ ue ue o build da solu'(o foi bem sucedido, sem erros ou alertas%

    *ns$ecione os $rojetos de$endentes e /eri@3ue 3ue as alteraUes no c!digocom$artil7ado "oram $ro$agadas

    1% 4o painel ScFema VieD, e panda a r ore e na egue at o n Data ase1 , Sc7emas , d o ,Vie4s , /4Ro4#ounts , #olumns% bser e a adi'(o da coluna Data ase)ame %

    2% li ue com o bot(o direito em /4Ro4#ounts e selecione Pro$erties %

    >% 4o painel !roperties, e amine o alor da propriedade ull Pat7 e note ue ela faT referNnciaao ar ui o localiTado na r ore de diret rios do pro*eto &atabase>%

    O% Repita os passos 1->, mas desta eT e amine a mesma is(o l gica no pro*eto Data ase2 %

    op@rigFt 200? Microsoft orporation !age 2K

    http://var/www/apps/conversion/tmp/scratch_4/C:%5C%5CHOL%5C%5CDatabaseProjectGuidance%5C%5CSolutionProjectMgmt%5C%5CSharedCode%5C%5CStep4_Answerhttp://var/www/apps/conversion/tmp/scratch_4/C:%5C%5CHOL%5C%5CDatabaseProjectGuidance%5C%5CSolutionProjectMgmt%5C%5CSharedCode%5C%5CStep4_Answer
  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    29/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    #ontrole de #!digo onte e er ncia de #on@guraoViso eral dos #en

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    30/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    #en0

    http://branchingguidance.codeplex.com/http://branchingguidance.codeplex.com/http://branchingguidance.codeplex.com/http://branchingguidance.codeplex.com/http://branchingguidance.codeplex.com/http://branchingguidance.codeplex.com/http://branchingguidance.codeplex.com/http://branchingguidance.codeplex.com/
  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    31/174

    Q

    TW

    C

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    op@rigFt 200? Microsoft orporation !age >1

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    32/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura C Modelo de branching $ara time `nico

    De@niUes de Branch $ara este cen2

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    33/174

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    34/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    #rie um no/o $rojeto de anco de dados e im$orte o schema do Ad/enture4or sDB

    1% nicie o Visual Studio 2010%

    2% 4o menu ile , aponte para )e4 e cli ue em Project % VocN er o di logo)e4 Project mostrado na igura ? %

    % Sob *nstalled 9em$lates , e panda o n Data ase , e panda o n S5L Ser/er , e selecione otemplate S5L Ser/er 200C 6i ard%

    O% Em)ame , digite o nome Ad/enture6or sDB para o nome do pro*eto%

    P% Selecione o cFec bo Add to source control %

    H% li ue em(F para con/rmar a cria'(o do pro*eto%

    igura Di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    35/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura 10 Di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    36/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    10% DiTard para importar um pro*eto de banco de dados a partir de um banco de dados e istente"engenFaria re ersa# aparece% li ue )e>t % "igura 12 #

    igura 12 PH

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    37/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    11% Altere a op'(o padr(o para (rgani e Sc7ema e cli ue em )e>t % " igura 1>#

    igura 1 P

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    38/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    1>% 4a p gina*m$ort Data ase Sc7ema , selecione os cFec bo es conforme anbai o% *m$orto$tions )

    *m$ort $ermissions

    Add im$orted $ermissions to t7e $roject model

    1O% li ue)e>t %"igura 1P#

    igura 1Q P

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    39/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    op@rigFt 200? Microsoft orporation !age >?

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    40/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    1H% Aguarde a importa'(o do banco de dados ser /naliTada% A mensagem W Clic+ inish toContinue X ser escrita na *anela de log% li ue em inis7 para fecFar o DiTard% " igura 1J #

    igura 1W Progresso do $rocesso de engen7aria re/ersa

    op@rigFt 200? Microsoft orporation !age O0

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    41/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo 2: aa o #7ec in do no/o $rojeto no 9eam oundation Ser/erAgora ue criamos o pro*eto de banco de dados no passo 1 n s ueremos utiliTar o processo debranching e merging % !ara faTer isso, n s de emos realiTer o cFec in "subir o c digo-fonte# do pro*etono 3eam oundation Ser er%

    &ura'(o estimada) 1 minuto

    aa o c7ec in das mudanas do $rojeto local $ara o controle de /erso

    1% 4o Solution E plorer, cli ue com o bot(o direito no pro*eto de banco de dados e cli ue em#7ec in % "igura 1K#

    igura 1C *niciando o $rocesso de c7ec $ara as mudanas $endentes

    op@rigFt 200? Microsoft orporation !age O1

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    42/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    2% erti/ ue-se de ue todos os items do pro*eto est(o selecionados no painel Pendingc7anges e ent(o cli ue em #7ec in % "igura 1? #

    igura 1 Re/ise os arte"atos $ara o c7ec in e certi@3ue se de 3ue todos estoselecionados

    >% 4o menu principal, cli ue em ile e ent(o em #lose solution %

    op@rigFt 200? Microsoft orporation !age O2

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    43/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo : #rie um ranc7 da soluoAgora ue /Temos o chec+ in da solu'(o e dos artefatos rele antes no 3eam oundation Ser er, n spodemos iniciar o trabalFo com as funcionalidades de controle de ers(o e criar branches "ramos#%

    &ura'(o estimada) 2 minutos

    1% 4o menu principal, cli ue em Vie4 e depois em 9eam +>$lorer %

    2% 4o 3eam E plorer, dN um duplo-cli ue em Source #ontrol " igura 20 #% A r ore de c digo docontrole de ers(o ir aparecer na *anela principal do Visual Studio%

    igura 20 banela do 9eam +>$lorer com a /iso do $rojeto

    op@rigFt 200? Microsoft orporation !age O>

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    44/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    >% 4a *anela Source ontrol, at o caminFo do controle de ers(o emG .(LZData aseProjects .(LZData aseHE cli ue com o bot(o direito no n e selecioneBranc7ing and merging e ent(o cli ue em Branc7 % di logo mostrado na igura 21 iraparecer%

    O% 4o combo;nder Branc7 "rom /ersion , selecione Latest /ersion e no campo 9arget digite onome .(LZData ase Branc7ZRe4ards % Sempre digite uma descri'(o para o branch ue tornemais f cil reconFecer sua /nalidade no futuro% li ue em ( para prosseguir%

    igura 21 +s$eci@3ue as in"ormaUes de origem do c!digo $ara criar o branch

    P% Se ocN ainda n(o especi/cou um Dor space o seguinte di logo ir aparecer, como mostradoigura 22 % Mapeie o Cor space para

    #:=.(L=Data aseProject uidance=6or s$ace=.(LZData ase Branc7ZRe4ards e cli ue emMa$ %

    igura 22 #rie um ma$eamento $ara um 4or s$ace

    op@rigFt 200? Microsoft orporation !age OO

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    45/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    H% comando para realiTar o branch sera en iado para o ser idor e e ecutado% VocN er o branch noSource #ontrol +>$lorer , como mostrado na igura 2>%

    igura 2 )o/o branch no Source #ontrol +>$lorer

    J% :tiliTando o 3eam E plorer, re e*a o no o brancF e abra a solu'(o .(LZData ase%sln %

    K% 4o Solution E plorer,cli3ue com o bot(o direito no pro*eto de banco de dados e depois em#7ec in % "igure 2O#

    igure 2N *nicie o $rocesso de c7ec in $ara as alteraUes $endentes

    op@rigFt 200? Microsoft orporation !age OP

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    46/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    ?% erti/ ue-se de ue todos os itens do pro*eto este*am selecionados no painel Pending c7angese cli ue em #7ec in % "igure 2P#

    igure 2Q Re/eja os arte"atos $ara o c7ec *n e certi@3ue se de 3ue todos estoselecionados

    10% Agora n s iremos iniciar mudan'as no pro*eto de banco de dados% Mais tarde iremos realiTar omerge dos artefatos do pro*eto de banco de dados de olta para o brancF principal "main#% !arasimular o merge n s iremos importer uma s rie de ar ui os ue representam as mudan'as uefaremos no c digo do pro*eto%

    11% 4o Solution E plorer, cli ue com o bot(o direito em Ad/enture6or sDB e em *m$ort Scri$t %

    12% 4a p gina WCelcome to tFe mport SBL Script CiTardX cli ue em )e>t %

    1>% 4a p gina WSelect SBL Script ile to mportX selecione a op'(o Single @le e cli ue em Bro4se %

    1N%V at a pasta #:=.(L=Data aseProject uidance=Source #ode #ontrol and #on@gurationManagement=Re4ardsProgram e selecione o ar ui oRe4ardsProgrammScri$t or*m$ort%s3l% li ue (F para fecFar a cai a de di logo%

    op@rigFt 200? Microsoft orporation !age OH

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    47/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura 2T *m$orte um ar3ui/o com as mudanas $ara o branch

    1Q% li ue em inis7 para iniciar o processo de importa'(o%

    op@rigFt 200? Microsoft orporation !age OJ

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    48/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    1H% Buando o processo de importa'(o esti er /naliTado ocN er a mensagem W lic inisF tocontinue%X li ue em inis7 % " igura 2J #

    igura 2W ( 4i ard im$ortou as mudanas $ara o ranc7

    Agora ue o processo de importa'(o foi conclu$do com sucesso amos realiTar o deploy das no asmudan'as no banco de dados SBL Ser er%

    op@rigFt 200? Microsoft orporation !age OK

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    49/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo N: aa o deploy da soluo de anco de dados4 s criamos o branch a partir do c digo-fonte e istente e nosso pr imo passo ser realiTar o deploy do banco de dados para uma inst ncia local do SBL Ser er%

    &ura'(o estimada) P minutos

    1% 4o Solution E plorer, cli ue com o bot(o direito no n do pro*eto e selecione Pro$erties %

    li ue com o bot(o direito no pro*eto Ad/enture6or sDB e selecione Pro$erties % Selecione no combo De$lo action a op'(o W #reate a de$lo ment scri$t K%s3l and

    de$lo to t7e data ase % 4a aba De$lo , ao lado pr imo de 9arget connection cli ue em +dit para especi/car

    uma cone (o SBL lida para o deployment % &igite um ponto /nal " %# no nome do ser idor e cli ue em (F para fecFar a *anela de cone (o%

    4a aba De$lo , digite .(LZ+/al200CZRe4ardsBranc7 como sendo o nome do banco dedados a ser criado no deployment % "igura 2K#

    igura 2C Pro$riedades de deployment do $rojeto

    2% omo o Ad entureDor s&+ inclui um ileStream /legroup e o caminFo n(o ser alteradoautomaticamente durante a importa'(o do pro*eto, teremos ue realiTar algumas pe uenasaltera'.es para poder realiTar o deplo@%

    4o Solution E plorer, at Sc7ema ( jects , Data ase Le/el ( jectsE Storage , ilese abra o ar ui o ileStreamDocuments%s3l@le%s3l %

    Altere o script %s l conforme abai o para incluir o nome do banco de dados)

    AL3ER &A3A+ASE h "&atabase4ame# A&& LE"4AME h ileStream&ocuments , LE4AME q "!atF># "&atabase4ame#%&ocumentsq#

    3 LE7R :! h&ocument ileStream7roup

    op@rigFt 200? Microsoft orporation !age O?

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    50/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    >% li ue com o bot(o direito na solu'(o de banco de dados e selecione De$lo para realiTar odeplo@ da solu'(o para o banco de dados especi/cado% VocN er o progresso do deployment na

    *anela utput do Visual Studio% "Se ocN n(o iTualiTar a *anela output, ocN poder alternar paraela atra s do menu principal% li ue em Vie4 e ent(o em (ut$ut% Ao isualiTar a *anela utput

    ocN poder alterar a op'(o S7o4 out$ut "rom para Build % "igura 2? #

    igura 2 Monitorando o $rogresso do deployment na janela (ut$ut

    deployment de er ser /naliTado sem erros, conforme mostrado ao /nal da das mensagens na *anela (ut$ut % "igura >0#

    igura 0 Resultado @nal na janela (ut$ut

    op@rigFt 200? Microsoft orporation !age P0

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    51/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo Q: a endo o merge do branch Kintegrando alteraUes entre dois branchesAgora ue /Temos o deploy do banco de dados no ser idor e o desen ol imento foi /naliTado, n siremos faTer o cFec in das mudan'as e realiTar o merge destas mudan'as com o branch main%&ura'(o estimada) P minutos

    1% Agora ue /Temos o deploy da ers(o rami/cada e alterada do pro*eto para o ser idor, n s temosuma ers(o diferente do banco de dados no nosso branch, para a ual de emos faTer cFec in%

    4o Solution E plorer, cli ue com o bot(o dierito no pro*eto de banco de dados e selecione #7ec in $ending c7anges % di logoPending #7anges ir aparecer% " igura >1#

    erti/ ue-se de ue todos os items est(o selecionados e cli ue no bot(o #7ec *n %

    igura 1 Re/eja as alteraUes $endentes $ara o .(LZData ase Branc7ZRe4ards

    2% !ara isualiTar os branches e istentes e preparar o merge para a *anela +rancF VisualiTation%li ue em no brancF .(LZData ase Branc7ZRe4ards , cli ue com o bot(o direito no n e

    para Branc7ing and merging % li ue emVie4 7ierarc7 % A *anela mostrada na igura >2 iraparecer%

    igura 2 Vi uali ao das rami@caUes K ranc7ing $ara o branch criado

    op@rigFt 200? Microsoft orporation !age P1

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    52/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    >% 4a *anelaBranc7 Visuali ation , selecione o s$mbolo .(LZData ase Branc7ZRe4ards , cli uecom o bot(o direito sobre ele e selecione o comando Merge % Source #ontrol Merge 6i ard aparece% " igura >>#

    igura Source #ontrol Merge 6i ard

    O% Ap s re isar a informa'(o do DiTard e certi/car-se de ue o brancF de origem o .(LZData aseBranc7ZRe4ards e o brancF de destino o .(LZData ase , e ent(o cli ue em )e>t % "igura >>#

    P% 4a pr ima p gina certi/ ue-se de ue Latest /ersion este*a selecionado para a opera'(o demerge e cli ue em )e>t %

    H% 4a p gina Wsummar@X cli ue eminis7 para iniciar a opera'(o de -erge %

    J% 4o Solution E plorer, cli3ue com o bot(o direito no pro*eto de banco de dados e selecione #7ecin $ending c7anges % di logoPending #7anges aparece% " igura >O#

    erti/ ue-se de ue todos os itens est(o selecionados e cli ue em #7ec *n %

    op@rigFt 200? Microsoft orporation !age P2

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    53/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura N Reali e o c7ec in das alteraUes $endentes reali adas durante a o$eraode merge

    op@rigFt 200? Microsoft orporation !age P>

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    54/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo T: Sincroni e as alteraUes do c!digo com a /erso atual do anco de dadosAgora ue n s /Temos o merge das mudan'as de olta para o branch principal "main#, amos faTer odeploy do banco de dados para garantir a sincronia do c digo-fonte com o deployment atual%&ura'(o estiamda) 1 minuto

    1% 4o menu principal cli ue em Data , cli ue em Sc7ema #om$are e ent(o cli ue em )e4 sc7emacom$arison % di logo para uma no a compara'(o de schemas ser aberto% " igura >P#

    igura Q DiH# As altera'.es do branch main ainda n(o foram aplicadas para obanco de dados correspondente% 4este ponto as altera'.es est(o somente no controle de ers(o%

    op@rigFt 200? Microsoft orporation !age PO

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    55/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura T Painel com os resultados da com$rao de Sc7emas

    >% !ara aplicar as diferen'as n s iremos utiliTar a capacidade do pro*eto de banco de dados derealiTar o deploy incremental das mudan'as% !ara tanto, no Solution E plorer, cli ue com o bot(odireito nos pro*etos de banco de dados e selecione Pro$erties % li ue na abaDe$lo e certi/ ue-se de ue as op'.es #reate De$lo Scri$ t e De$lo ment action este*am selecionadas %

    O% li ue com o bot(o direito na solu'(o e cli ue em De$lo para faTer o deploy da solu'(o para obanco de dados especi/cado% VocN ir er o progresso do deployment na *anela utput do VisualStudio% Ao /nal das mensagens ocN de er er uma se'(o cFamada De$lo ment scri$tgenerated to ue cont m o caminFo para o ar ui o %s l para e ecutar no banco de dados relati oao branch main% Estescript pode ser utiliTado para sincroniTar o banco de dados com o c digo dobranch %

    op@rigFt 200? Microsoft orporation !age PP

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    56/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    #en

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    57/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo 1: #rie um branch a $artir da soluo!ara simular diferentes times trabalFando no pro*eto n s criaremos 2 branches a partir da solu'(o nobranch main o ual n s /Temos chec+ in anteriormente " e*a o cen rio Q1#%

    &ura'(o estimada) 10 minutos

    1% 4a *anela WSource ontrolX, at o caminFo do controle de ers(o.(LZData aseProjects .(LZData ase , cli ue com o bot(o direito neste n e selecione

    Branc7ing and merging % li ue em Branc7 % di logoBranc7 "rom .(LZData ase iraparecer, conforme mostrado na igura >K%

    2% 4o combo Branc7 "rom Version , selecione Latest /ersion e digite o nome.(LZData aseProjects .(LZData ase 9eam1 no campo 9arget Branc7 )ame % &igite uma

    descri'(o para o brancF ue torne f cil reconFecer o seu prop sito no futuro% li ue no bot(oBranc7 para prosseguir% " igura >K#

    igura C +s$eci@3ue in"ormaUes so re a origem do branch

    op@rigFt 200? Microsoft orporation !age PJ

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    58/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    >% li ue em Yes para con/rmar ue ocN dese*a criar o branch %

    igura Di%

    igura N0 )o/o branch no Source #ontrol +>$lorer

    P% Re e*a o no obranch utiliTando o 3eam E plorer%

    op@rigFt 200? Microsoft orporation !age PK

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    59/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    H% 4a *anela WSource ontrolX, at o caminFo do controle de ers(o.(LZData aseProjects .(LZData ase , cli ue com o bot(o direito neste n e selecione

    Branc7ing and merging % li ue em Branc7 % di logoBranc7 "rom .(LZData ase iraparecer, conforme mostrado na igura O1%

    J% 4o combo Branc7 "rom Version , selecione Latest /ersion e digite o nome.(LZData aseProjects .(LZData ase 9eam2 no campo 9arget Branc7 )ame % &igite uma

    descri'(o para o branch ue torne f cil reconFecer o seu prop sito no futuro% li ue no bot(oBranc7 para prosseguir% " igura >K#

    igure N1 +s$eci@3ue in"ormaUes so re a origem do branch

    K% li ue em Yes para con/rmar ue ocN dese*a criar o branch %

    igure N2 Di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    60/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    ?% comando de branching ser en iado ao ser idor e e ecutado% Buando o processo de branching for /naliTado, ocN ir isualiTar o branch no Source ontrol E plorer, conforme mostrado na igura2>%

    igure N )o/o branch no Source #ontrol +>$lorer

    10% Re e*a o no obranch utiliTando o 3eam E plorer%

    op@rigFt 200? Microsoft orporation !age H0

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    61/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo 2: aa alteraUes no $rojetoAp s criar dois branches , n s iremos simular diferentes altera'.es nos brancFes para preparamos oprocesso de merge ue sera e ecutado no pr imo passo%

    &ura'(o estimada) 1P minutos

    1% a'a altera'.es na tabela Purc7asing%Vendor no branch 9eam1 %

    a% 4o Source #ontrol +>$lorer , abra a solu'(o a partir do branch .(LZData ase9eam1 %

    % Abra o ar ui o Vendor%ta le%s3l @le % Ele est localiTado em Ad/enture6or sDB , Ad/enture6or sDB , Sc7ema ( jects , Sc7emas , Purc7asing , 9a les %

    c% Adicione a colunaPre"erredVendor adicionado a linFa de c digo correspondente noscript% script /nal de e ser como o abai o)

    REA3E 3A+LE h!urcFasing %hVendor " hVendor & 43 &E43 3"1, 1# 4 3 4:LL, hAccount4umber hdbo %hAccount4umber 4 3 4:LL, h4ame hdbo %h4ame 4 3 4:LL, h reditRating 3 4 43 4 3 4:LL, h!referredVendorStatus hdbo %h lag 4 3 4:LL, hActi e lag hdbo %h lag 4 3 4:LL, h!urcFasingCebSer ice:RL 4VAR IAR "102O# 4:LL, hModi/ed&ate &A3E3 ME 4 3 4:LL, h!referredVendor + 3 4 3 4:LL#

    2% a'a o cFec in das altera'.es pendentes no branch 3eam1%

    4o Solution E plorer, cli ue com o bot(o direito no pro*eto de banco de dados e selecione a

    op'(o #7ec in $ending c7anges % di logoPending #7anges sera e ibido% " igura OO#erti/ ue-se de ue todos os items este*am selecionados e cli ue em #7ec *n %

    igura NN Re/iso das alteraUes $endentes $ara o branch .(LZData ase 9eam1

    1% a'a altera'.es na tabela Purc7asing%Vendor no branch 9eam2 %

    a% 4o Source ontrol E plorer, abra a solu'(o a partir do branch .(LZData ase 9eam1 %

    op@rigFt 200? Microsoft orporation !age H1

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    62/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    % Abra o ar ui o Vendor%ta le%s3l % Ele est localiTado em Ad/enture6or sDB , Ad/enture6or sDB , Sc7ema ( jectsE Sc7emas , Purc7asing , 9a les %

    c% Altere a colunaPurc7asing6e Ser/ice;RL e reduTa o tamanFo do tipo de dados de102O para P12 caracteres% script resultante de e se parecer com o abai o))

    REA3E 3A+LE h!urcFasing %hVendor " hVendor & 43 &E43 3"1, 1# 4 3 4:LL, hAccount4umber hdbo %hAccount4umber 4 3 4:LL, h4ame hdbo %h4ame 4 3 4:LL, h reditRating 3 4 43 4 3 4:LL, h!referredVendorStatus hdbo %h lag 4 3 4:LL, hActi e lag hdbo %h lag 4 3 4:LL, h!urcFasingCebSer ice:RL 4VAR IAR "P12# 4:LL, hModi/ed&ate &A3E3 ME 4 3 4:LL#

    >% a'a o cFec in das altera'.es pendentes no branch 3eam2%

    4o Solution E plorer, cli ue com o bot(o direito no pro*eto de banco de dados e selecione #7ec in $ending c7anges % di logo Wpending cFangesX sera e ibido% "igura OP#

    erti/ ue-se de ue todos os itens este*am selecionados e cli ue em #7ec *n %

    igura NQ Re/eja as alteraUes $endentes $ara o branch .(LZData ase 9eam2

    op@rigFt 200? Microsoft orporation !age H2

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    63/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo : aa o merge das mudanas do branch 9eam1 $ara o MainAgora ue n s /Temos altera'.es nos branches 3eam1 e 3eam2, n s iremos realiTar o merge docontedo de olta para o branch main% 4este passo n s iremos nos concentrar no branch 3eam1%

    &ura'(o estimada) P minutos

    1% 4o menu principal, cli ue em Vie4 e ent(o cli ue em 9eam +>$lorer

    K% 4o 3eam E plorer, at osource control no caminFo .(LZData aseProjects .(LZData ase9eam1 , cli ue com o bot(o direito no n e selecione Merge % Source #ontrol Merge 6i ard aparece% " igura OH#

    igura NT Source #ontrol Merge 6i ard

    op@rigFt 200? Microsoft orporation !age H>

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    64/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    ?% Ap s re isar a informa'(o no .i$ard certi/car-se de ue o branch de origem .(LZData aseBranc7Z9eam1 e o branch de destino o .(LZData ase , cli ue em )e>t % "igura OH#

    10% :m di logo de con/rma'(o ir aparecer% li ue em inis7 para iniciar a opera'(o de merge %" igura OJ#

    igura NW Merge con@rmation dialog o>

    11% 4o Solution E plorer, cli ue com o bot(o direito no pro*eto de banco de dados e selecione #7ecin $ending c7anges % di logo de altera'.es pendentes aparece% " igura OK#

    erti/ ue-se de ue todos os itens selecionados e cli ue em #7ec *n %

    igura NC aa o chec in das alteraUes $endentes "eitas durante a o$erao demerge

    op@rigFt 200? Microsoft orporation !age HO

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    65/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Passo N: aa o merge das mudanas do branch 9eam2 $ara o MainAgora ue n s /Temos as altera'.es nos branches 3eam1 e 3eam2, n s iremos realiTar o merge docontedo de olta para o branch main% 4este passo n s iremos nos concentrar no branch 3eam2%

    omo n s * /Temos o chec+ in das mudan'as do branch 3eam1 n s precisaremos resol er os con itosresultantes do processo de merge %

    &ura'(o estimada) 10 minutos

    1% 4o menu principal, cli ue em Vie4 e ent(o cli ue em 9eam +>$lorer%

    2% 4o 3eam E plorer, at o source control no caminFo.(LZData aseProjects .(LZData ase 9eam2 , cli ue com o bot(o direito no n e

    selecione Merge % Source #ontrol Merge 6i ard aparece% " igura O?#

    igura N Source #ontrol Merge 6i ard

    op@rigFt 200? Microsoft orporation !age HP

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    66/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    >% Ap s re isar a informa'(o do DiTard e certi/car-se de ue o branch de origem o.(LZData ase Branc7Z9eam2 e o brancF de destino o .(LZData ase , cli ue em )e>t %" igura OH#

    O% :m di logo de con/rma'(o aparece na p gina Per"orm t7e merge o$eration % li ue eminis7 para iniciar a opera'(o de merge% " igura OJ#

    igura Q0 Di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    67/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura Q1 #on]itos de merge sero e>i idos no di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    68/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    K% 4o Solution E plorer, cli ue com o bot(o direito no pro*eto de banco de dados e selecione #7ec in $ending c7anges % di logoPending #7anges de er aparecer% " igura P>#

    erti/ ue-se de ue todos os items este*am selecionados e cli ue em #7ec *n %

    igura Q aa o chec in das alteraUes $endentes "eitas durante a o$erao demerge

    op@rigFt 200? Microsoft orporation !age HK

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    69/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    *ntegrando Mudanas +>ternas com o Sistema de Projeto

    Mantendo Lin ed Ser/ers no Projeto de Banco de Dados doVisual StudioResumo

    4este cen rio um banco de dados depende de informa'.es ue reside em um outro banco ue estem uma inst ncia diferente do SBL Ser er% :m lin+ed server creado para pro er uma cone (ocomum para todas as /ueries ue possi elmente acessem este banco de dados% nome utiliTadopelo pro*eto de banco de dados pode ser diferente entre os ambientes%

    ( jeti/os do #en

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    70/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura QN Di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    71/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura QQ Di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    72/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    #rie um no $rojeto de anco de dados $ara "a er re"er ncia ao $rojeto criado no $assoanterior

    pro*eto abai o um pro*eto t$pico ue normalmente faT referNncia a outros pro*etos%

    P% Abra o Visual Studio 2010%

    H% li ue em ile , cli ue em )e4 e ent(o cli ue em Project %

    J% VocN er o di logo e ibido conforme igura 1

    K% Especi/ ue o nome do pro*eto como sendo Re"erencingData ase e um local para sal ar osar ui os%

    ?% li ue em(F para con/rmar a cria'(o do pro*eto%

    igure QT Di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    73/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura QW Adicione uma re"er ncia $ara Re"erencedData ase

    2% li ue no bot(o Bro4se para localiTer o ar ui o %dbscFema referente ao banco de dados dopro*eto WReferenced&atabaseX%

    Mar ue a op'(o De@ne ser/er /aria les e digite o nome da ari el para o nome do

    ser idor como KM Re"erencedSer/er % &igite o alor M Lin edSer/er "este sero nome do ser idor lin+ed server nos pr imos passos#%

    Mar ue a op'(o De@ne data ase /aria le e digite o nome da ari el para o nomedo ser idor como KM Re"erencedData ase % &igite o alor Re"erencedData ase "este ser o nome do banco de dados nos pr imos passos#%%

    li ue em (F para fecFar o di logo Data ase Re"erence %

    4 3AA op'(o W:pdate tFe e isting scFema ob*ect de/nitionsX pode ser muito til se ocN * desen ol euum banco de dados ue cont m referNncias est ticas a um lin+ed server ou em geral nomescompostos de > ou uatro partes% til inclusi e para faTer engenFaria re ersa de um banco de dadose istente% Esta op'(o ir Refatorar as e istNncias e istentes e torn -las con/gur eis atra s destas

    ari eis%

    #rie uma no/a view no $rojeto 3ue "a re"er ncia a ta ela do $rojeto e>ternoKre"erenciado

    op@rigFt 200? Microsoft orporation !age J>

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    74/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    1% li ue com o bot(o direito no pro*eto de banco de dados% Selecione Add e ent(o cli ue emVie4 % di logoAdd )e4 *tem ser e ibido% " igura PP#

    igura QC Di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    75/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    Mo/imentao #om$le>a de DadosResumo

    s cen rios abai o utiliTar(o a tarefa de adicionar uma coluna 4 3 4:LL em uma tabela% Esta tarefa simples mas dependendo do resultado dese*ado ocN pode encontrar uma s rie de problemas% Muitasabordagens ir(o mo er ou renomear a tabela o ue pode ter conse uNncias para as cFa esestrangeiras ou relacionamentos% Adicionar uma coluna 4 3 4:LL ir cobrir muitos dos problemas ue

    ocN ter ao alterar cFa es estrangeiras entre tabelas%4 s utiliTaremos uma estrutura de banco de dados simples para ue possamos focar nocomportamento da ferramenta sem maiores intereferNncias%

    Este laborat rio est di idio em uatro cen rios cen rio 1 ir lFe mostrar como as mudan'as s(o geralmente tratadas em um sistema de

    pro*eto e uais problemas ocN pode encontrar uando faT deplo@ de mudan'as para umbanco de dados ue cont m dados%

    s cen rios de 2 a O ir(o sugerir abordagens para tratar estas mudan'as, incluindo os pr s e

    contras de cada situa'(o%

    ( jeti/os dos #en

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    76/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    A ra o $rojeto de e>em$lo

    1% Abra a solu'(oa% Abra o Visual Studio 2010%b% 4o menu principal cli ue em ile , cli ue em ($en $roject e ent(o at o pro*eto

    localiTado em #:=.(L=Data aseProject uidance=*ntegration 4it7 #ustom #odeand +>ternal #7anges=#om$le>DataMo/ement=Scenario1 % Abra o ar ui oSim$leData ase%sln %

    Se ocN na egar at o pro*eto Sim$leData ase "Selecione a pasta Sc7ema( jects Sc7emas D o 9a les sob o pro*eto# ocN ir perceber ue ele descre e uma estrutura debanco de dados conforme abai o% " igura P? #

    igura Q Diagrama de +R dos o jetos inclu?dos no sc7ema

    aa o Build e De$lo da soluo

    1% 4o Solution E plorer, cli ue com o bot(o direito no pro*eto Sim$leData ase e selecionePro$erties%

    2% &e/na a op'(o De$lo action para #reate a de$lo ment scri$t K%s3l and de$lo tot7e data ase %

    >% Especi/ ue a cone (o SBL para a inst ncia de banco de dados de destino clicanco em+dit % &igite W%X no campo ser er name e Sim$leData ase para o nome do banco dedados%

    O% Veri/ ue se as op'.es est(o como na igura H0%

    op@rigFt 200? Microsoft orporation !age JH

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    77/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igura T0 ($Ues de De$lo ment $ara o $rojeto Sim$leData ase

    P% 4o Solution E plorer, cli ue com o bot(o direito no pro*eto Sim$leData ase e selecioneDe$lo %

    Agora ue temos um banco de dados aTio n s podemos e plorar o comportamento da edi'(o dobanco de dados conforme formos faTendo as mudan'as% 4 s iremos dedicar um bom tempo a aliandoa sa$da da engine de deployment , logo iremos alterar a a'(o de Deploy para ue o script se*a apenasgerado%

    aa alteraUes no $rojeto e a/alie o script de deployment

    1% &e/na a a'(o de Deploy a% 4o Solution E plorer, cli ue com o bot(o direito no pro*eto Sim$leData ase e

    selecione Pro$erties %b% Altere o campo De$lo action para #reate a de$lo ment scri$t K%s3l %

    2% Adicione uma coluna 4 3 4:LL na tabela ompaniesa% Abra o ar ui o#om$anies%ta le%s3l e pandindo a pasta Sc7ema ( jects ,

    Sc7emas , d oE 9a les %b% Adicione o atributo 4 3 4:LL na coluna LanguageLocale% script de e /car igual ao

    abai o)

    REA3E 3A+LE hdbo %h ompanies"

    d int 4 3 4:LL, !arent d int 4:LL,4ame n arcFar "100 # 4 3 4:LL,LanguageLocale n arcFar "P# 4 3 4:LL

    #

    >% a'a odeploy do pro*eto

    op@rigFt 200? Microsoft orporation !age JJ

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    78/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    a% li ue com o bot(o direito na solu'(o de banco de dados e cli ue em De$lo para faTero deploy para o banco de dados especi/cado% VocN er o progresso do deployment na

    *anela utput do Visual Studio% Ao /nal da sa$da registrada na *anela output ocN eruma se'(o De$lo ment scri$t generated to: ue cont m o caminFo para o ar ui o%s l contendo as instru'.es de altera'(o do banco de dados%

    b% Abra o ar ui o %s l gerado localiTado no caminFo indicado na *anela output%

    op@rigFt 200? Microsoft orporation !age JK

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    79/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    4 3AI dois comportamentos ue precisamos notar)

    A engine detecta ue ocN est adicionando uma coluna 4 3 4:LL sem &E A:L3 e e ibe

    um alerta de ue o deployment ir falFar caso * e istam dados na tabela% alertaaparece na *anela (ut$ut conforme a seguir) 12arning 34567896: The column5anguage5ocale on table ;dboem$lo

    O% Remo a a coluna LanguageLocalea% Abra o ar ui o#om$anies%ta le%s3l e pandindo a pasta Sc7ema ( jects ,

    Sc7emas , d o , 9a les %b% Remo a a coluna LanguageLocale deletando o c digo rele ante do script % resultado

    de e ser como abai o)

    REA3E 3A+LE hdbo %h ompanies"

    d int 4 3 4:LL, !arent d int 4:LL,4ame n arcFar "100 # 4 3 4:LL

    #

    c% erti/ ue-se de ue o a a'(o de deployment este*a con/gurada para faTer o deploy %4o Solution E plorer, cli ue com o bot(o direito no pro*eto Sim$leData ase e cli ueem Pro$erties % 4a aba De$lo , o campo De$lo action de e ser alterado para#reate a de$lo ment scri$t K%s3l and de$lo to t7e data ase %

    d% li ue com o bot(o direito na solu'(o e selecione De$lo para publicar as altera'.es nobanco de dados especi/cado%

    P% 7ere dados de e emplo

    a% 4o Solution E plorer, abra a pasta Data eneration Plans %b% &N um duplo-cli ue no ar ui oSam$leData%dgen % plano de gera'(o de dados sera

    aberto e ocN ir isualiTar uma pr ia dos dados ue ser(o gerados% " igura H1#

    )(9AVocN pode perceber um problema com a mensagem 4o oercible utput ao tentarde/nir os alores para cidade e estado% sso se de e ao caminFo di ergente de/nido paraesta cone (o% !ara corrigir o problema, cli ue nas propriedades para cada campo com oproblema e edite a propriedade onnection nformation para)Dsn +>cel iles d 3 #:=.(L=DA9ABAS+PR(b+#9 ;*DA)#+=*)9+ RA9*() 6*9.#;S9(M #(D+ A)D +O9+R)AL#.A) +S=#(MPL+ODA9AM(V+M+)9=Scenario1ZAns4er=Solution*tems=;SStatesA

    op@rigFt 200? Microsoft orporation !age J?

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    80/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    nd#ities%>ls> de"aultdir #:=.(L=DA9ABAS+PR(b+#9 ;*DA)#+=*)9+ RA9*()6*9. #;S9(M #(D+ A)D +O9+R)AL#.A) +S=#(MPL+ODA9AM(V+M+)9=Scenario1ZAns4er=Solution*tems dri/erid10NT ma> ufersi e 20NC $agetimeout QS stem%Data%(d c alse

    aso tenFa di/culdades para corrigir este problema, ocN pode prosseguir com os passosdo laborat rio, ue continuar(o funcionando% A diferen'a ue os dados e ibidos n(o ir(ocorresponder ao ue e ibido em alguns passos deste documento% Se a pr ia n(o fore ibida corretamente, cli ue com o bot(o direito na lista de colunas no alto e selecioneWPre/ie4 data generation X%

    igura T1 banela com $r /ia da gerao dos dados de e>em$lo

    c% !ressione P para gerar os dados%d% Selecione o banco de dados Sim$leData ase conforme mostrado na igura H2%

    igura T2 Di

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    81/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    igure T Dialog o> to c7ec i" data 7as to e @rst deleted Pro$ague as mudanas com os dados de e>em$lo inseridos no anco de dados

    Agora ue temos dados no banco de dados amos er o ue acontece uando e ecutamos o deploy com a coluna 4 3 4:LL%

    1% &e/na a'(o de deploy %a% 4o Solution E plorer, cli ue com o bot(o direito no pro*eto Sim$leData ase e

    selecione Pro$erties %b% Altere o alor do campo De$lo action para #reate a de$lo ment scri$t K%s3l %

    2% Adicione uma coluna 4 3 4:LL na tabela ompaniesa% Abra o ar ui o#ustomers%ta le%s3l e pandindo a pasta Sc7ema ( jects , Sc7emas , d o , 9a les %

    b% Adicione a colunaLanguageLocale no amente com o atributo 4 3 4:LL% script resultante de e estar como abai o)

    REA3E 3A+LE hdbo %h ustomers"

    d int 4 3 4:LL, ompan@ d int 4 3 4:LL,

    LanguageLocale n arcFar"P# 4 3 4:LL#

    >% a'a odeploy do pro*etoa% li ue com o bot(o direito na solu'(o de banco de dados e cli ue em De$lo para faTer

    o deploy para o banco de dados especi/cado% VocN er o progresso do deployment na *anela utput do Visual Studio% Ao /nal da sa$da registrada na *anela output ocN eruma se'(o De$lo ment scri$t generated to: ue cont m o caminFo para o ar ui o%s l contendo as instru'.es de altera'(o do banco de dados%

    b% Abra o ar ui o %s l gerado localiTado no caminFo indicado na *anela output%

    #()#L;S-(VocN ir perceber ue o deployment falFa por ue a engine de deployment n(o capaT dedeterminar o ue faTer com os dados e istentes uma eT ue n(o F um alor defaultespeci/cado para a no a coluna% VocN ir obter a mesma informa'(o durante o deployment )

    Carning SBL012H?) 3Fe column hdbo %h ustomers %hLanguageLocale on table hdbo %h ustomers must be added, but tFe column Fas no default alue and does not alloD 4:LLalues% f tFe table contains data, tFe AL3ER script Dill not Dor % 3o a oid tFis issue, @ou must

    add a default alue to tFe column or mar it as alloDing 4:LL alues%

    sso signi/ca ue o seguinte comando falFaria no caso de Fa erem dados na tabela)

    op@rigFt 200? Microsoft orporation !age K1

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    82/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    op@rigFt 200? Microsoft orporation !age K2

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    83/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    #ena de Dados +ngana engine de deployment K+n"ra3uecea e>$eri ncia atra/ s da *D+E 3ue ra o S## como mastreE e gera uma des/antagem de$er"ormance

    Local dos ar ui os iniciais) )`I L`&atabase!ro*ect7uidance` ntegration DitF ustom ode andE ternal Fanges` omple &ataMo ement`Scenario1 AnsDerLocal dos ar ui os /nais) )`I L`&atabase!ro*ect7uidance` ntegration DitF ustom ode and

    E ternal Fanges` omple &ataMo ement`Scenario2 AnsDer

    Estamos empacados 4(o% Apenas precisamos eliminar a ambiguidade de forma ue a deploymentengine possa faTer seu trabalFo% A primeira ideia adicionar um alor &E A:L3 ao campo e remo N-loap s o fato, no momento ade uado%

    Adicione uma constraint D+ A;L9 na ta ela

    1% Adicione uma onstraint &E A:L3 na tabela ompanies

    a% Abra a pasta Sc7ema ( jects Sc7emas d o #onstraints %b% li ue com o bot(o direito na pasta onstraints e cli ue em Add e depois em )e4

    *tem %c% EscolFa o modelo referente a &efault onstraint e dN o nome de

    D#Z#om$aniesZLanguageLocal % li ue em(F para fecFar o DiTard%d% Buando o script com o modelo default for aberto, tro ue o a de/ni'(o do scFema para

    o script abai o)

    AL3ER 3A+LE hdbo %h ompanies A&& 4S3RA 43 h& ompanies LanguageLocale &E A:L3 qE4-:Sq R hLanguageLocale

    2% a'a o deploy do pro*etoa% li ue com o bot(o direito na solu'(o de banco de dados e cli ue em De$lo para faTero deploy para o banco de dados especi/cado% VocN er o progresso do deployment na

    *anela utput do Visual Studio% Ao /nal da sa$da registrada na *anela output ocN eruma se'(o De$lo ment scri$t generated to: ue cont m o caminFo para o ar ui o%s l contendo as instru'.es de altera'(o do banco de dados%

    b% Abra o ar ui o %s l gerado localiTado no caminFo indicado na *anela output%c% VocN ir er o seguinte script de altera'(o com a constraint default adicionada)

    Agora o deployment ser bem sucedido% Mas por outro lado o banco de dados n(o est no estado uedese*amos% Ele tem um &E A:L3 em coluna ue n s n(o ueremos% 3rata-se apenas de umacon eniNncia para conseguirmos realiTar o deploy % Adicionalmente precisamos considerar ue osdados ap s o deployment est errados, uma eT ue n(o faT sentido ue todos os registros tenFam o

    alor E4-:S na no a coluna% !ara resol er estes problemas utiliTaremos um !ost&eplo@ment script%

    Remo/a a constraint de"ault no scri$t 3ue e>ecutado a$!s de$lo ment

    op@rigFt 200? Microsoft orporation !age K>

  • 7/24/2019 Apostila Visual Studio 2010 Database Projects

    84/174

    &ocumenta'(o) !ro*etos de +anco de &ados no Visual Studio 2010 -Laborat rios

    1% Adicione um !ost&eplo@ment script para alterar os dados%

    a% 4o Solution E plorer, at a pasta Scri$ts PostDe$lo ment no pro*eto de banco dedados, cli ue com o bot(o direito e selecione Add e ent(o em Scri$t %

    b% &N o nomePo$ulateLanguageLocale%s3l para o script e cli ue em (F %c% Ap s o script ser aberto, substitua o te to pelo seguinte script)

    :!&A3E hdbo %h ompaniesSE3 hLanguageLocale qES-M8q

    R M hdbo %h ompanies 44ER Y 4 hdbo %Addresses A&&R 4 %d A&&R%ompan@ d

    CIERE A&&R%State 4 "q L RA& q, q AL R4 Aq, q:3AIq, qAR 4Aq, q4EC ME8 q, q3E8ASq, q L R &Aq, q4EVA&Aq#

    4 3Aaso Fa*a ual uer problema com o passo de gera'(o de dados este comando n(o ir

    alterar nenFum registro%

    2% Adicione outro !ost&eplo@ment script para e cluir a atributo &E A:L3a% 4o Solution E plorer, no pro*eto de banco de dados, at a pasta

    Scri$ts PostDe$lo me