<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diário de um DBA &#187; Vida Real</title>
	<atom:link href="http://silasmendes.com/dba/category/vida-real/feed" rel="self" type="application/rss+xml" />
	<link>http://silasmendes.com/dba</link>
	<description>Tecnologia &#38; Banco de Dados</description>
	<lastBuildDate>Tue, 27 Dec 2011 12:53:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>COMMIT 2011</title>
		<link>http://silasmendes.com/dba/commit-2011</link>
		<comments>http://silasmendes.com/dba/commit-2011#comments</comments>
		<pubDate>Mon, 26 Dec 2011 16:48:44 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[ERP]]></category>
		<category><![CDATA[Feliz Ano Novo]]></category>
		<category><![CDATA[IBTA]]></category>
		<category><![CDATA[MCITP]]></category>
		<category><![CDATA[MCT]]></category>
		<category><![CDATA[ocp]]></category>
		<category><![CDATA[TCC]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=996</guid>
		<description><![CDATA[Escrevo este post ainda surpreso com a velocidade que este ano passou. Como previ no post inaugural de 2011, 365 dias é pouco para fazer tanta coisa&#8230; mas o que importa é que tentamos e realizamos algumas das metas iniciais :) Fecho o ano formado em Banco de Dados pelo IBTA; o TCC foi um [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/12/COMMIT.png"><img class="alignleft size-full wp-image-999" title="COMMIT" src="http://silasmendes.com/dba/wp-content/uploads/2011/12/COMMIT.png" alt="" width="263" height="62" /></a>Escrevo este post ainda surpreso com a velocidade que este ano passou. Como previ no <a href="http://silasmendes.com/dba/begin-transaction-2011" target="_blank">post inaugural de 2011</a>, 365 dias é pouco para fazer tanta coisa&#8230; mas o que importa é que tentamos <em><strong>e realizamos</strong></em> algumas das metas iniciais :)</p>
<p>Fecho o ano formado em Banco de Dados pelo IBTA; o TCC foi um trabalho puxado, mas junto com meus camaradas <strong>Flavio Trigolo</strong> e <strong>Altair Alexandre</strong> conseguimos uma nota 10 de tirar o folego :) Sem dúvidas, o resultado foi fruto da dedicação e vontade em fazermos um trabalho de qualidade. Agradeço a esses dois caras pela super força!</p>
<p>Logo no início do ano <a href="http://silasmendes.com/dba/70-450-mcitp-dba" target="_blank">atualizei o MCITP para o SQL Server 2008</a> e adquiri o MCT; agora sou um instrutor oficial Microsoft :) Agora acreditem, o melhor do MCT eu descobri depois: a biblioteca disponível para os MCTs é sensacional, uma excelente fonte de estudos.</p>
<p>O OCP não rolou; e a desculpa é fajuta (mas verdadeira): faltou tempo.</p>
<p>O projeto atual está a todo vapor e estou trabalhando como nunca&#8230; mas é um projeto sensacional; pra resumir o cenário imagine: a construção de um ERP (do zero) para um grande varejista do mercado&#8230; é este o lugar que estou trabalhando.</p>
<p>Aqui no blog foram 5500 visitas em média por mês&#8230; infelizmente em contrapartida eu falhei com a meta dos 2 posts por mês; essa meta ficou aquém do que eu havia planejado, mas pretendo compensar esse desfalque em 2012.</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/12/estatisticas1.jpg"><img class="aligncenter size-full wp-image-1010" title="estatisticas" src="http://silasmendes.com/dba/wp-content/uploads/2011/12/estatisticas1.jpg" alt="" width="475" height="171" /></a><a href="http://silasmendes.com/dba/wp-content/uploads/2011/12/estatisticas.jpg"><br />
</a>Na vida pessoal, graças a Deus, a vida com a família tem ido muito bem. A filhota completa em Janeiro 1 ano de idade e tem crescido com muita saúde. Não há felicidade maior que isso para um pai fresco, risos&#8230;</p>
<p>Enfim, que venha 2012!</p>
<p>A você, meu amigo, meus sinceros votos de um ano rico em saúde e conhecimento. Continuaremos juntos por aqui.</p>
<p>Forte abraço,</p>
<p><em><strong>Silas Mendes</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/commit-2011/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Teched 2011</title>
		<link>http://silasmendes.com/dba/teched-2011</link>
		<comments>http://silasmendes.com/dba/teched-2011#comments</comments>
		<pubDate>Thu, 06 Oct 2011 02:00:45 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[denali]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[Sql Server]]></category>
		<category><![CDATA[TechEd]]></category>
		<category><![CDATA[tecnologia]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=971</guid>
		<description><![CDATA[Semana passada rolou o Teched 2011 e eu estive lá durante os 2 dias do evento. Reencontrei muitos amigos e conheci outros que só conhecia da comunidade virtual. Show de bola, fortalecendo o networking :) Assisti 8 trilhas e acho interessante tecer minhas considerações: General Session Essa foi a trilha de abertura do evento e [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/10/logo-teched-2011.png"><img class="alignleft size-full wp-image-979" title="logo-teched-2011" src="http://silasmendes.com/dba/wp-content/uploads/2011/10/logo-teched-2011.png" alt="" width="265" height="121" /></a>Semana passada rolou o Teched 2011 e eu estive lá durante os 2 dias do evento. Reencontrei muitos amigos e conheci outros que só conhecia da comunidade virtual. Show de bola, fortalecendo o <em>networking</em> :)</p>
<p>Assisti 8 trilhas e acho interessante tecer minhas considerações:</p>
<p><strong>General Session</strong></p>
<p>Essa foi a trilha de abertura do evento e abordou em resumo todas as novidades do mundo Microsoft para os próximos meses. Gostei. Teve um toque de show com direito a discurso do presidente da Microsoft Brasil, algumas demos apresentando o System Center 2012, Windows Phone 7, SQL Server Denali, Office 365, Cloud, Cloud, Cloud, Cloud (isso mesmo; acho que ouvi essa palavra umas 100 vezes, risos) e etc.</p>
<p>Em especial gostei:</p>
<ul>
<li> da notícia da fabricação do XBOX no Brasil;</li>
<li>da apresentação do Windows Phone e suas aplicações;</li>
<li>do System Center interagindo com dispositivos Android e iOS;</li>
<li>dos novos relatórios (super dinâmicos) do Reporting Services sendo exibidos/editados no browser (via SharePoint).</li>
</ul>
<p>Achei esta sessão um pouco longa; durou cerca de 3 horas&#8230; mas vamos falar um pouco das outras palestras:</p>
<p><strong>O que há de novo no Microsoft SQL Server Code-Named “Denali”</strong></p>
<p>Foi a segunda palestra que assisti e sinceramente, foi decepcionante. Não posso avaliar o conhecimento dos palestrantes, mas o conteúdo e a apresentação estavam muito aquém do que se espera de um evento desse porte. Sai dessa trilha na esperança de que o nível melhorasse nas próximas&#8230; e melhorou.</p>
<p><strong>Como montar um ambiente de alta disponibilidade com o Hyper-V</strong></p>
<p>O palestrante Rodrigo Immaginario mandou muito bem nessa sessão, abordando as vantagens e desvantagens das diferentes formas de implementação de um cluster + Hyper-V. O cara acessou o ambiente de produção dele no Espírito Santo e fez um <em>live migration</em> “no quente”. Gostei.</p>
<p><strong>Microsoft SQL Server Code-Named “Denali” AlwaysOn: Introduzindo a nova geração de soluções para alta disponibilidade</strong></p>
<p>Uma das melhores trilhas que assisti&#8230; Nilton Pinheiro fez uma  apresentação impecável da nova <em>feature</em> de alta disponibilidade do Denali: <strong><em>AlwaysOn</em></strong>. Foi nesta trilha que descobri algo muito interessante no Denali: agora poderemos instalar o SQL Server num Windows Server Core! Bacana!</p>
<p>No 2º dia assisti as seguintes trilhas:</p>
<p><strong>T-SQL: o que você deve saber do Microsoft SQL Server 2008 R2 e as novidades do SQL Server Code-Named “Denali”</strong></p>
<p>Excelente trilha com o Gustavo Maia. O cara apresentou com muita propriedade as novidades da linguagem T-SQL no SQL Server 2008 R2 e Denali, fazendo comparativos entre SGBDs, apresentando dados históricos, e etc. Enfim, essa palestra foi muito bacana porque eu ainda não tinha parado pra olhar as novidades do T-SQL no Denali; somou muito!</p>
<p><strong>Boas práticas para o SQL Server em ambientes virtualizados</strong></p>
<p>O palestrante Airton Leal mandou muito bem; era nítido o domínio do cara nas tecnologias de virtualização e ele deu dicas preciosíssimas para quem quer trabalhar com ambiente virtualizado. Uma informação muito interessante que ele disponibilizou: se você tem um sistema rodando numa maquina física e deseja transporta-lo para uma maquina virtual, esteja ciente que o <em>overhead </em>mínimo no desempenho será de 12%. Essa informação foi bem bacana, porque muita gente defende que não tem custo nenhum; afirmação que para mim sempre pareceu bem absurda. O único ponto que achei muito estranho nessa palestra: o título! Tudo era focado em boas práticas para ambientes virtualizados, porém, nada focado em SQL Server. Mesmo assim, somou!</p>
<p><strong>Cenários de otimização com o SQL Server “Denali” e 2008</strong></p>
<p>Trilha de alto nível técnico com o Luti e Fabiano Amorim&#8230; os caras deram dicas preciosas de otimização, todas muito bem argumentadas e demonstradas. Se eu não tivesse feito o curso de <em>internals</em> e de índices (com o Luti), diria que essa teria sido, para mim, a melhor trilha do evento, pois em 1 hora, os caras deram informações que você não encontra na maioria dos livros de <em>tunning</em>. Muito bom mesmo!</p>
<p><strong>Raio-X do SQL Server: Arquitetura interna do gerenciador de banco de dados</strong></p>
<p>Outra trilha fantástica! Inicialmente não tinha me programado para assistir essa palestra, porque fiz o curso de internals recentemente; mas mudei os planos mais na curiosidade e fui surpreendido pela apresentação do Catae e do Felipe Pimenta&#8230; em 1 hora os caras conseguiram resumir e discorrer sobre os principais pilares da arquitetura do SQL Server. Muita gente saiu dessa trilha com o cérebro fritando, mas os palestrantes foram ótimos e se esforçaram em serem o mais didático possível. Fechei o Teched com 2 trilhas nível 400 de verdade :)</p>
<p><strong>Conclusão</strong></p>
<p>O evento foi muito bom, com excelente organização e pontualidade. A maioria dos palestrantes eram “feras” e isso enriqueceu muito a experiência. Agora a pergunta que muita gente me faz: “voltaria ao evento em 2012?”. E eu respondo: o evento é muito bom, porém ainda acho que não vale o preço (principalmente quando o profissional paga do próprio bolso, risos). Enfim, poderiam dar uma melhorada no valor; ou quem sabe, no próximo ano, meu cliente resolve pagar essa conta; afinal ele é um dos principais beneficiados com esse investimento :D</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/teched-2011/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BEGIN TRANSACTION 2011</title>
		<link>http://silasmendes.com/dba/begin-transaction-2011</link>
		<comments>http://silasmendes.com/dba/begin-transaction-2011#comments</comments>
		<pubDate>Thu, 13 Jan 2011 12:19:24 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[ano novo]]></category>
		<category><![CDATA[MCITP]]></category>
		<category><![CDATA[ocp]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=773</guid>
		<description><![CDATA[Um belo ano terminou e agora 2011 começa efetivamente pra mim. E já começou em ritmo alucinante com o nascimento da minha filha (vide post anterior); sem dúvidas uma experiência marcante, sensacional e indescritível. Apesar das noites sem sono (sim, já estou passando por essa fase, risos) a sensação é de que um evento que [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/01/Feliz-2011-Ano-Novo-7.jpg"><img class="alignleft size-medium wp-image-777" title="Feliz-2011" src="http://silasmendes.com/dba/wp-content/uploads/2011/01/Feliz-2011-Ano-Novo-7-300x233.jpg" alt="" width="300" height="233" /></a>Um belo ano terminou e agora 2011 começa efetivamente pra mim. E já começou em ritmo alucinante com o nascimento da minha filha (<a href="http://silasmendes.com/dba/hidaddy" target="_blank">vide <em>post</em> anterior</a>); sem dúvidas uma experiência marcante, sensacional e indescritível. Apesar das noites sem sono (sim, já estou passando por essa fase, risos) a sensação é de que um evento que foge a nossa razão está ocorrendo a cada momento&#8230; e a gente percebe que tudo irá mudar daqui pra frente, e isso é <strong><em>fantástico</em></strong>!</p>
<p>Mas enfim, falando um pouco sobre profissão e bancos de dados, posso dizer que 2010 foi um ano memorável. Adquiri muito conhecimento, tanto em SQL Server como em Oracle. O SQL Server continua a minha principal plataforma de banco de dados, mas foi interessante estender o olhar para outro gerenciador e notar as diferenças, pontos fortes e fracos de ambos&#8230; percebi que é muito importante ter referências; afinal quando temos um único ponto de vista, não podemos falar com propriedade de outros&#8230;</p>
<p>Além disso entrei num projeto onde estou rodeado de uma dezena de DBAs. Além de excelentes contatos (risos), conquistei muitos amigos. Um ambiente assim é um sonho pra qualquer pessoa que deseja se desenvolver ainda mais. Implantamos a primeira parte de um sistema em produção, o processo exigiu muito esforço mas entrou no ar e foi gratificante.</p>
<p>Aqui no blog foram aproximadamente 3000 visitas por mês, pode parecer pouco, mas pra quem começou sem qualquer pretensão é um belo número!</p>
<p>Mas 2011 promete muito mais&#8230;</p>
<p>Pretendo escrever um pouco mais por aqui, tentando manter uma freqüência de pelo menos 2 posts por mês&#8230; aqui no projeto teremos o desafio de implantar a segunda parte do sistema em produção&#8230; último semestre da faculdade, junto com apresentação do TCC&#8230; quero adquirir mais uns MCITPs (e quem sabe um OCA) e enfim&#8230;</p>
<p>Se parar pra pensar é muita coisa pra fazer em 300 e poucos dias&#8230; mas vamos lá! Saúde e entusiasmo pra todos nós!</p>
<pre class="brush: sql; title: ; notranslate">
BEGIN TRANSACTION 2011
</pre>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/begin-transaction-2011/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hi Daddy!</title>
		<link>http://silasmendes.com/dba/hidaddy</link>
		<comments>http://silasmendes.com/dba/hidaddy#comments</comments>
		<pubDate>Tue, 11 Jan 2011 18:55:55 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=767</guid>
		<description><![CDATA[Sempre conversamos aqui sobre bancos de dados&#8230; mas hoje &#8220;quebro o protocolo&#8221; para apresentar aos meus amigos nerds minha filhinha, nascida na última quarta-feira (05/01/2010)&#8230; sensação fantástica e indescritível&#8230; Demais :) Até +]]></description>
			<content:encoded><![CDATA[<p>Sempre conversamos aqui sobre bancos de dados&#8230; mas hoje &#8220;quebro o protocolo&#8221; para apresentar aos meus amigos <em>nerds </em>minha filhinha, nascida na última quarta-feira (05/01/2010)&#8230; sensação fantástica e indescritível&#8230;</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/01/P1060121_m.jpg"><img class="aligncenter size-medium wp-image-768" src="http://silasmendes.com/dba/wp-content/uploads/2011/01/P1060121_m-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Demais :)</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/hidaddy/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Ho Ho Ho!!!</title>
		<link>http://silasmendes.com/dba/ho-ho-ho</link>
		<comments>http://silasmendes.com/dba/ho-ho-ho#comments</comments>
		<pubDate>Fri, 24 Dec 2010 11:02:58 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Bla bla bla]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[boas festas]]></category>
		<category><![CDATA[felicidades]]></category>
		<category><![CDATA[feliz natal]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=755</guid>
		<description><![CDATA[:))))]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"> </span></p>
<pre class="brush: sql; title: ; notranslate">
USE BOAS_FESTAS
GO
PRINT 'FELIZ NATAL!!!!!!!'
GO
</pre>
<p>:))))</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/ho-ho-ho/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Movimentando arquivos da base de dados</title>
		<link>http://silasmendes.com/dba/movimentando-arquivos</link>
		<comments>http://silasmendes.com/dba/movimentando-arquivos#comments</comments>
		<pubDate>Mon, 20 Dec 2010 21:15:43 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[ALTER DATABASE]]></category>
		<category><![CDATA[arquivo]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[datafile]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[move]]></category>
		<category><![CDATA[movimentar]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=743</guid>
		<description><![CDATA[Uma das atividades que pontuam a rotina de um DBA é a movimentação de arquivos de bancos de dados; normalmente resultado de falta de espaço em disco, mudança de arquitetura, otimização e etc. Nosso cenário: Os arquivos de dados e log da base de dados MoveArquivo estão no mesmo disco. Para otimizar a performance decidimos [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das atividades que pontuam a rotina de um DBA é a movimentação de arquivos de bancos de dados; normalmente resultado de falta de espaço em disco, mudança de arquitetura, otimização e etc.</p>
<p><strong>Nosso cenário</strong>: Os arquivos de dados e log da base de dados <strong>MoveArquivo</strong> estão no mesmo disco. Para otimizar a performance decidimos movimentar o arquivo de log para outro disco.</p>
<p>Existem diversos meios de realizar esta tarefa, a seguir iremos analisar uma delas (e a que particularmente acho mais prática):</p>
<p><strong>“Mão na massa”</strong></p>
<p>Primeiro, precisamos ter algumas informações em mãos; por exemplo, o nome lógico do arquivo que será alterado e o local atual do arquivo de log de nossa base de dados:</p>
<p>Para isso podemos utilizar o comando <strong>sp_helpdb</strong>:</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2010/12/01_move_arquivo1.jpg"><img class="aligncenter size-full wp-image-745" title="01_move_arquivo" src="http://silasmendes.com/dba/wp-content/uploads/2010/12/01_move_arquivo1.jpg" alt="" width="708" height="60" /></a></p>
<p>Ok; já sabemos onde está nosso arquivo de log. Agora precisamos alterar este endereço e para isto utilizamos o seguinte comando:</p>
<pre class="brush: sql; title: ; notranslate">
USE MASTER
GO
ALTER DATABASE MoveArquivo
MODIFY FILE (NAME = 'MoveArquivo_log', FILENAME = 'E:\SQLDbs\Log\MoveArquivo_log.ldf')
GO
</pre>
<p>Após execução do comando temos a seguinte mensagem:</p>
<p><span style="color: #ff0000;">The file &#8220;MoveArquivo_log&#8221; has been modified in the system catalog. <strong>The new path will be used the next time the database is started.</strong></span><strong></strong></p>
<p>Temos então, numa tradução livre, o alerta: <em>“O novo caminho só será utilizado após reinicialização da base”</em>. Então fique atento! Este comando não alterou efetivamente o endereço físico do arquivo; para concluir a operação precisamos reiniciar a base.</p>
<p>Para não afetarmos a operação dos outros bancos da instância e para reduzirmos o tempo de parada, não vamos mexer com o serviço do SQL Server; vamos apenas alterar o estado da base de dados, deixando-a offline:</p>
<pre class="brush: sql; title: ; notranslate">
ALTER DATABASE MoveArquivo
SET offline
GO
</pre>
<p>Após execução deste comando a base fica indisponível para qualquer usuário e agora podemos copiar fisicamente o arquivo de log para seu novo endereço. Neste momento, através de um CTRL + C, CTRL+ V (ou qualquer outro meio de copiar um arquivo no Windows) copiamos o arquivo para seu novo endereço.</p>
<blockquote><p><em>Atenção: tenha certeza de copiar o arquivo para o mesmo endereço informado no primeiro comando ALTER DATABASE.</em></p></blockquote>
<p>Finalizada a cópia, podemos reiniciar nossa base de dados com o seguinte comando:</p>
<pre class="brush: sql; title: ; notranslate">
ALTER DATABASE MoveArquivo
SET online
GO
</pre>
<p>Pronto! Arquivo de log movimentado para novo endereço.</p>
<p>O mesmo procedimento pode ser utilizado para outros tipos de arquivos (como arquivos de dados). Para as bases de sistema (MASTER, TEMPDB, etc) não será possível utilizar a opção SET ONLINE/OFFLINE; neste caso teremos que reiniciar o serviço do SQL Server, afetando a disponibilidade de toda instância.</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/movimentando-arquivos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Registrando modificações com o CDC</title>
		<link>http://silasmendes.com/dba/cdc-change-data-capture</link>
		<comments>http://silasmendes.com/dba/cdc-change-data-capture#comments</comments>
		<pubDate>Sun, 07 Nov 2010 12:03:26 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[capturar]]></category>
		<category><![CDATA[cdc]]></category>
		<category><![CDATA[change data capture]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[logar]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[trigger]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=725</guid>
		<description><![CDATA[A edição Enterprise do SQL Server 2008 veio com uma funcionalidade nova e bastante interessante conhecida como CDC, abreviação de Change Data Capture. Esta função permite que o DBA capture e registre todas as mudanças feitas numa determinada tabela, de forma bastante simples. Em versões anteriores do SQL Server, poderíamos utilizar triggers DML para suprir [...]]]></description>
			<content:encoded><![CDATA[<p>A edição Enterprise do SQL Server 2008 veio com uma funcionalidade nova e bastante interessante conhecida como CDC, abreviação de <strong>Change Data Capture</strong>. Esta função permite que o DBA capture e registre todas as mudanças feitas numa determinada tabela, de forma bastante simples.</p>
<p>Em versões anteriores do SQL Server, poderíamos utilizar <em>triggers</em> DML para suprir necessidades similares, e para isso tínhamos que programar a <em>trigger</em> que seria disparada e que gravaria a alteração em outra tabela; no entanto, este processo demandava esforço e exigia um controle na manutenção das <em>triggers </em>e tabelas de apoio. Com o CDC, a partir do momento que o DBA habilita-o em determinada tabela, o SQL Server se responsabiliza por toda a estrutura necessária para capturar e registrar as mudanças.</p>
<p><strong>Como funciona?</strong></p>
<p>O CDC captura e registra alterações baseado no log do SQL Server; basicamente ele utiliza o mesmo mecanismo da replicação transacional: o CDC lê o log do SQL Server e registra as alterações em suas tabelas. Note que este processo é assíncrono, ou seja, um dado é alterado e a alteração fica registrada no log; periodicamente é feita uma leitura no log e as alterações são registradas nas tabelas do CDC (criadas pelo SQL Server no <em>schema</em> CDC).</p>
<p><strong>&#8220;Mão na massa&#8221;</strong></p>
<p>Agora vamos exemplificar um cenário simples utilizando o CDC, monitorando uma única tabela.</p>
<p>No primeiro passo iremos criar a tabela que será utilizada em nossos testes:</p>
<pre class="brush: sql; title: ; notranslate">
-- Cria tabelas para teste

CREATE TABLE Funcionario (
codigoFuncionario INT NOT NULL,
nome VARCHAR(60),
idade INT,
numeroCPF CHAR(11)
);
GO
ALTER TABLE Funcionario
ADD CONSTRAINT PK_CodFunc
PRIMARY KEY (codigoFuncionario);
</pre>
<p>Agora ativamos o CDC na base de dados e na tabela Funcionario:</p>
<pre class="brush: sql; title: ; notranslate">
-- Habilita CDC banco

EXEC sys.sp_cdc_enable_db;
GO
-- Habilita CDC na tabela Funcionario

EXECUTE sys.sp_cdc_enable_table
@source_schema = 'dbo',
@source_name = 'Funcionario',
@role_name = 'roleCDC';
</pre>
<p>Ao habilitar o CDC, o SQL Server cria <em>jobs</em> que serão executados pelo SQL Server Agent. Estes <em>jobs</em> serão os responsáveis pelo registro das alterações nas tabelas do CDC; logo, para o CDC funcionar corretamente, lembre-se que o SQL Server Agent deve estar em execução.</p>
<p>Com o CDC habilitado, vamos popular a tabela Funcionario:</p>
<pre class="brush: sql; title: ; notranslate">
-- Carga de dados

INSERT INTO Funcionario (codigoFuncionario, nome, idade, numeroCPF)
VALUES
(1, 'Silas Mendes', 29, '08643238736'),
(2, 'Antonio Robberto', 36, '04686398765'),
(3, 'Joana Maxado', 45, '52341369844'),
(4, 'Roberto',null, null),
(5, 'Armando Filo', null, '41397601223');
</pre>
<p>Agora já podemos consultar a tabela do CDC que armazena as alterações na tabela Funcionario:</p>
<blockquote><p><em>Observe que a tabela do CDC está no esquema CDC.</em></p></blockquote>
<p><strong><em> </em></strong></p>
<blockquote><p><em>Lembre-se que este é um processo assíncrono, portanto ao executar o comando abaixo, pode ser que a tabela ainda não tenha sido atualizada; neste caso, repita a execução do comando.</em></p></blockquote>
<pre class="brush: sql; title: ; notranslate">

SELECT * FROM cdc.dbo_Funcionario_CT;
</pre>
<p style="text-align: center;"><a href="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_insert2.jpg"><img class="aligncenter size-full wp-image-731" title="CDC_insert" src="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_insert2.jpg" alt="" width="730" height="46" /></a></p>
<p>No resultado são retornadas 9 colunas. Neste momento atente-se à coluna <strong>__$operation</strong>. Note que ela está com o valor: <strong>2</strong>. O valor 2 significa que estes registros foram resultado de inserções.</p>
<p>Vamos continuar manipulando os dados para verificar os reflexos das alterações nas tabelas do CDC:</p>
<pre class="brush: sql; title: ; notranslate">
-- UPDATEs na tabela Funcionario

UPDATE Funcionario
SET Nome = 'Antonio Roberto'
WHERE codigoFuncionario = 2;

UPDATE Funcionario
SET Nome = 'Joana Machado'
WHERE codigoFuncionario = 3 ;

UPDATE Funcionario
SET Nome = 'Roberto Nespolitano',
Idade = 18, NumeroCPF = '08468354173'
WHERE codigoFuncionario = 3;
</pre>
<p>Observe o registro das alterações na tabela do CDC:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT * FROM cdc.dbo_Funcionario_CT;
</pre>
<p style="text-align: center;"><a href="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_update.jpg"><img class="aligncenter size-full wp-image-733" title="CDC_update" src="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_update.jpg" alt="" width="731" height="47" /></a></p>
<p>Agora observe que aumentou a quantidade de registros da tabela do CDC. Além das inserções (__$operation = 2) temos também o ANTES e DEPOIS nas operações de UPDATE. Observe agora que, onde o campo <strong>__$operation </strong>é igual a <strong>3</strong> o registro contém o estado antes do UPDATE, e onde o campo <strong>__$operation = 4</strong> temos o estado do registro após o UPDATE.</p>
<p>Para finalizar nosso exemplo, vamos realizar uma exclusão e verificar como essa alteração é registrada:</p>
<pre class="brush: sql; title: ; notranslate">
DELETE FROM Funcionario
WHERE codigoFuncionario IN (2,3);
</pre>
<p>Execute novamente a consulta na tabela do CDC:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT * FROM cdc.dbo_Funcionario_CT;
</pre>
<p style="text-align: center;"><a href="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_delete.jpg"><img class="aligncenter size-full wp-image-734" title="CDC_delete" src="http://silasmendes.com/dba/wp-content/uploads/2010/11/CDC_delete.jpg" alt="" width="731" height="46" /></a></p>
<p>Agora notamos: onde o campo <strong>__$operation = 1 </strong>temos os registros que foram excluídos da tabela Funcionario.</p>
<p><strong>CONCLUSÃO</strong></p>
<p>Como observamos, basicamente são necessários 4 passos para utilizar o CDC:</p>
<ul>
<li>Utilizar a versão Enterprise (ou superior) do SQL Server 2008;</li>
<li>O serviço SQL Server Agent deve estar ativo;</li>
<li>Ativar o CDC no banco de dados utilizando a procedure <strong>sp_cdc_enable_db</strong>;</li>
<li>Ativar o CDC nas tabelas que serão monitoradas utilizando a procedure <strong>sp_cdc_enable_table</strong>.</li>
</ul>
<p>Vimos também que na tabela de registro do CDC temos diversos valores para o campo <strong>__$operation</strong>, sendo: <strong> </strong></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="139" valign="top"><strong>Comando DML</strong></td>
<td width="107" valign="top"><strong>__$operation</strong></td>
</tr>
<tr>
<td width="139" valign="top">DELETE</td>
<td width="107" valign="top">1</td>
</tr>
<tr>
<td width="139" valign="top">INSERT</td>
<td width="107" valign="top">2</td>
</tr>
<tr>
<td width="139" valign="top">Antes do UPDATE</td>
<td width="107" valign="top">3</td>
</tr>
<tr>
<td width="139" valign="top">Depois do UPDATE</td>
<td width="107" valign="top">4</td>
</tr>
</tbody>
</table>
<p>Hoje abordamos somente os processos básicos do CDC. Irei estender este assunto em outros  posts, onde pretendo abordar alguns detalhes interessantes desta nova <em>feature </em>do SQL Server 2008.</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/cdc-change-data-capture/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DML, DDL?!? O que é isso?</title>
		<link>http://silasmendes.com/dba/dml-ddl-o-que-e-isso</link>
		<comments>http://silasmendes.com/dba/dml-ddl-o-que-e-isso#comments</comments>
		<pubDate>Mon, 18 Oct 2010 17:03:04 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[dcl]]></category>
		<category><![CDATA[ddl]]></category>
		<category><![CDATA[dml]]></category>
		<category><![CDATA[Linguagem]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=718</guid>
		<description><![CDATA[A linguagem SQL é composta por inúmeros comandos, os quais são agrupados da seguinte maneira: Comandos que definem dados; Comandos que manipulam dados; Comandos de controle de dados. Algumas literaturas adicionam outras subdivisões, mas neste post vamos nos ater somente as citadas acima. DDL Quando você cria um banco de dados, ele inicialmente está “vazio”; [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>A linguagem SQL é composta por inúmeros comandos, os quais são agrupados da seguinte maneira:</p>
<ul>
<li> Comandos que definem dados;</li>
<li>Comandos que manipulam dados;</li>
<li>Comandos de controle de dados.</li>
</ul>
<blockquote><p>Algumas literaturas adicionam outras subdivisões, mas neste post vamos nos ater somente as citadas acima.</p></blockquote>
<ul>
<li><strong>DDL</strong></li>
</ul>
<p>Quando você cria um banco de dados, ele inicialmente está “vazio”; antes de começar a consultar e alterar dados é preciso definir onde e como as informações serão gravadas dentro do novo banco; então você cria diversas tabelas explicitando o tipo de dados de cada campo, as chaves estrangeiras, os índices, as regras e etc. Estes comandos de criação e alteração de estrutura são os comandos de DEFINIÇÃO dos dados, pois definem como os dados serão armazenados; em inglês são chamados de: <strong><em>Data Definition Language</em></strong><strong> (DDL)</strong>. Logo, quando falamos em comandos do tipo <strong>DDL</strong> estamos falando de comandos do tipo: CREATE, ALTER ou DROP; comandos que criam, alteram ou excluem objetos como tabelas, procedures, índices, relacionamentos e etc.</p>
<p>Exemplos de comandos DDL:</p>
<pre class="brush: sql; title: ; notranslate">

-- Cria uma tabela

CREATE TABLE Pessoa(
codigoPessoa char(11),
nomePessoa varchar(50));

-- Altera tabela

ALTER TABLE Pessoa
ADD numeroTelefone varchar(11);

-- Exclui tabela

DROP TABLE Pessoa;
</pre>
<ul>
<li><strong>DML</strong></li>
</ul>
<p>Depois que você criou suas tabelas, definiu relacionamentos, índices e etc., é hora de  manipular seus dados; os comandos SQL que MANIPULAM dados são os populares SELECT, INSERT, UPDATE e DELETE. Em inglês esses comandos são chamados de <em><strong>Data Manipulation Language</strong></em> o que explica a abreviação <strong>DML</strong>.</p>
<blockquote><p>Em algumas literaturas o comando SELECT não é considerado um comando de manipulação de dados, sendo enquadrado numa outra categoria: DQL, Data Query Language, em português: Linguagem de consulta.</p></blockquote>
<p>Exemplos de comandos DML:</p>
<pre class="brush: sql; title: ; notranslate">

-- Seleciona dados

SELECT nome+' '+sobrenome
FROM Pessoa;

-- Altera dados

UPDATE Pessoa
SET codigoPessoa = '35649869711';

-- Exclui dados

DELETE Pessoa;
</pre>
<ul>
<li><strong> DCL</strong></li>
</ul>
<p>Com o banco de dados pronto e rodando é importante definir quem poderá acessá-lo, enfim, precisamos definir a segurança do seu banco. Em inglês, os comandos responsáveis pelo controle dos dados são chamados de <em><strong>Data Control Language</strong></em> (<strong>DCL</strong>). Os comandos <strong>GRANT </strong>e <strong>REVOKE </strong>fazem parte deste grupo.</p>
<pre class="brush: sql; title: ; notranslate">

-- Permissão de seleção na tabela Pessoa para a usuária Maria

GRANT SELECT ON Pessoa TO Maria;

-- Permissão de seleção e inserção na tabela Pessoa para o usuário Alberto

GRANT SELECT, INSERT ON Pessoa TO Alberto;

-- Negando alterações na tabela Pessoa para usuários do grupo GRP_RH

DENY INSERT, UPDATE, DELETE ON Pessoa TO GRP_RH;
</pre>
<ul>
<li><strong> CONCLUSÃO</strong></li>
</ul>
<p>A linguagem SQL é constituída de diferentes tipos de comandos e estes comandos são agrupados em três categorias principais, sendo: comandos <strong>DDL </strong>as instruções que definem estruturas de armazenamento dos dados; <strong>DML </strong>os comandos que manipulam os dados e <strong>DCL </strong>os comandos que controlam o acesso aos dados.</p>
<p>Durante as atividades do dia-a-dia você utilizará com mais freqüência os comandos do tipo DDL e DML.</p>
<p>Até +</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/dml-ddl-o-que-e-isso/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Backup compactado</title>
		<link>http://silasmendes.com/dba/backup-compactado</link>
		<comments>http://silasmendes.com/dba/backup-compactado#comments</comments>
		<pubDate>Tue, 14 Sep 2010 14:47:42 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[adventureWorks]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[compactar]]></category>
		<category><![CDATA[comprimir]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[sp_configure]]></category>
		<category><![CDATA[sql backup]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=677</guid>
		<description><![CDATA[A compressão de backups sempre foi um dilema para quem lida com grandes bases de dados no SQL Server. Muitos DBAs criaram rotinas para compactar arquivos de backup utilizando o bom e velho RAR, outros utilizavam soluções mais interessantes como o SQL Backup da RedGate. Finalmente na versão 2008 a Microsoft adicionou uma solução nativa [...]]]></description>
			<content:encoded><![CDATA[<p>A compressão de backups sempre foi um dilema para quem lida com grandes bases de dados no SQL Server. Muitos DBAs criaram rotinas para compactar arquivos de backup utilizando o bom e velho RAR, outros utilizavam soluções mais interessantes como o <a href="http://www.red-gate.com/products/SQL_Backup/" target="_blank">SQL Backup</a> da RedGate.</p>
<p>Finalmente na versão 2008 a Microsoft adicionou uma solução nativa para compactação de backups, no entanto esta opção só estava disponível na edição Enterprise.</p>
<p>Com a chegada do 2008 R2 a Microsoft estendeu a funcionalidade para a edição Standard; ou seja, a coisa tá ficando mais acessível.</p>
<p><strong>“Mão na massa”</strong></p>
<p>Para compactar o backup o processo é bem simples, basicamente precisamos adicionar a opção <strong>WITH COMPRESSION</strong> no comando de backup:</p>
<pre class="brush: sql; title: ; notranslate">
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\AdventureWorks_compactado.BAK'
WITH COMPRESSION;
</pre>
<p>Agora o mais interessante: comparando backups da base AdventureWorks, um compactado e outro sem compactação, temos os seguintes números:</p>
<p><img class="aligncenter size-full wp-image-679" title="compactaBKP" src="http://silasmendes.com/dba/wp-content/uploads/2010/09/compactaBKP1.png" alt="" width="442" height="36" /></p>
<p>Vemos que o arquivo compactado tem cerca de 25% do tamanho do arquivo sem compactação. Bem bacana, não é?</p>
<p>Se você deseja que a compactação de backup seja <em>Default</em> na sua instância, altere a configuração <strong>backup compression default</strong> para 1:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_configure 'backup compression default', '1';
RECONFIGURE;
</pre>
<p class="MsoNormal">Assim, quando você realizar um backup, mesmo que não utilize explicitamente a opção <strong>WITH COMPRESSION</strong> (ou esqueça de utilizá-la) seus backups serão compactados.</p>
<p><span style="font-size: 12.0pt; font-family: &amp;amp;amp; mso-fareast-font-family: &amp;amp;amp; mso-ansi-language: PT-BR; mso-fareast-language: PT-BR; mso-bidi-language: AR-SA;">Bom trabalho!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/backup-compactado/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>T-SQL &#8211; Mesclando dados</title>
		<link>http://silasmendes.com/dba/t-sql-mesclando-dados</link>
		<comments>http://silasmendes.com/dba/t-sql-mesclando-dados#comments</comments>
		<pubDate>Fri, 10 Sep 2010 15:01:51 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[comparar]]></category>
		<category><![CDATA[Juntar]]></category>
		<category><![CDATA[MERGE]]></category>
		<category><![CDATA[Mesclar]]></category>
		<category><![CDATA[Sincronizar]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=660</guid>
		<description><![CDATA[O SQL Server 2008 trouxe para o T-SQL um comando brilhante que realmente facilita a vida de muita gente; o comando em questão é o MERGE. A idéia deste comando é mesclar dados, logo você pode comparar duas tabelas e utilizar o comando MERGE para sincronizá-las. Vamos a um exemplo simples: Primeiro criamos duas tabelas [...]]]></description>
			<content:encoded><![CDATA[<p>O SQL Server 2008 trouxe para o T-SQL um comando brilhante que realmente facilita a vida de muita gente; o comando em questão é o MERGE. A idéia deste comando é mesclar dados, logo você pode comparar duas tabelas e utilizar o comando MERGE para sincronizá-las.</p>
<p>Vamos a um exemplo simples:</p>
<p>Primeiro criamos duas tabelas com estrutura idêntica. A chave primária destas tabelas é o campo CPF:</p>
<pre class="brush: sql; title: ; notranslate">
create table Tabela1 (
Nome varchar(50),
Idade int,
CPF char(11) primary key);

create table Tabela2 (
Nome varchar(50),
Idade int,
CPF char(11) primary key);
</pre>
<p>Agora inserimos dados nas tabelas. Observe que os dados estão diferentes, alguns tem diferença no nome, outros registros estão sobrando ou faltando em ambas tabelas:</p>
<pre class="brush: sql; title: ; notranslate">
insert into Tabela1 values
('Silas Mendes' , 29, '08148338716'),
('Maria José'   , 49, '55978913269'),
('Pedro Ribeiro', 53, '05899714732'),
('Joana Silva'  , 18, '74105689623');

insert into Tabela2 values
('SILAS Mendes'       , 29, '08148338716'),
('Maria Jose'         , 49, '55978913269'),
('Pedro Ribeiro Souza', 53, '05899714732'),
('Carlos Mania'       , 19, '12345678999');
</pre>
<p>Agora precisamos sincronizar as tabelas, vamos analisar passo-a-passo a construção do comando MERGE (o comando completo está disponível no fim do texto) .</p>
<p>A tabela de destino (target) é a <strong>tabela2</strong>; a tabela de origem (source) é a <strong>tabela1. </strong>A chave primária das tabelas será utilizada na comparação:</p>
<pre class="brush: sql; title: ; notranslate">
merge into tabela2 as target
using (select nome, idade, cpf from tabela1)
  as source (nome, idade, cpf)
  on (target.cpf = source.cpf)
</pre>
<p>Quando os números dos CPFs forem encontrados em ambas tabelas então atualizamos os dados na tabela alvo (target):</p>
<pre class="brush: sql; title: ; notranslate">
when matched then
		 update set target.nome = source.nome,
					target.idade = source.idade,
					target.cpf = source.cpf
</pre>
<p>Quando os números dos CPFs não forem encontrados na tabela de destino, então inserimos os dados da tabela de origem:</p>
<pre class="brush: sql; title: ; notranslate">
when not matched by target then
		 insert (nome, idade, cpf) values (nome, idade, cpf)
</pre>
<p>E finalmente, quando existirem números de CPFs no destino que não existem na origem, apagamos os registros que sobram:</p>
<pre class="brush: sql; title: ; notranslate">
when not matched by source then
		 delete;
</pre>
<p>Veja o código completo do comando MERGE:</p>
<pre class="brush: sql; title: ; notranslate">
merge into tabela2 as target
using (select nome, idade, cpf from tabela1)
  as source (nome, idade, cpf)
  on (target.cpf = source.cpf)

-- Atualiza registros diferentes
when matched then
		 update set target.nome = source.nome,
					target.idade = source.idade,
					target.cpf = source.cpf

-- Insere registros que não existem no destino
when not matched by target then
		 insert (nome, idade, cpf) values (nome, idade, cpf)

-- Se existir no destino e não existir na origem é apagado
when not matched by source then
		 delete;
</pre>
<p>Por fim realizamos o SELECT nas duas tabelas para verificar o resultado após a sincronização:</p>
<pre class="brush: sql; title: ; notranslate">

select * from Tabela1;
select * from Tabela2;
</pre>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2010/09/MERGE_Resultado.png"><img class="aligncenter size-full wp-image-673" title="MERGE_Resultado" src="http://silasmendes.com/dba/wp-content/uploads/2010/09/MERGE_Resultado.png" alt="" width="246" height="247" /></a></p>
<div>Bom trabalho, bom estudo!</div>
<div><span style="font-size: 12.0pt; font-family: &amp;amp;amp; mso-fareast-font-family: &amp;amp;amp; mso-ansi-language: PT-BR; mso-fareast-language: PT-BR; mso-bidi-language: AR-SA;"><br />
</span></div>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/t-sql-mesclando-dados/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

