<?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; Erros $#$%!</title>
	<atom:link href="http://silasmendes.com/dba/category/erros/feed" rel="self" type="application/rss+xml" />
	<link>http://silasmendes.com/dba</link>
	<description>Tecnologia &#38; Banco de Dados</description>
	<lastBuildDate>Sun, 15 Apr 2012 12:20:16 +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>Erro no attach do banco no Windows 7</title>
		<link>http://silasmendes.com/dba/erro-no-attach-do-banco-no-windows-7</link>
		<comments>http://silasmendes.com/dba/erro-no-attach-do-banco-no-windows-7#comments</comments>
		<pubDate>Fri, 17 Jun 2011 17:16:33 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dica rápida]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Management Studio]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=935</guid>
		<description><![CDATA[Dica super rápida: Há alguns dias me deparei com um problema enquanto trabalhava com o SQL Server 2008 R2 no Windows 7. Minha intenção era anexar o banco de dados à instância, processo popularmente conhecimento como &#8220;attachar&#8221; um banco :) &#8230; <a href="http://silasmendes.com/dba/erro-no-attach-do-banco-no-windows-7">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dica super rápida:</p>
<p>Há alguns dias me deparei com um problema enquanto trabalhava com o <strong>SQL Server 2008 R2 </strong>no Windows 7. Minha intenção era anexar o banco de dados à instância, processo popularmente conhecimento como &#8220;attachar&#8221; um banco :)</p>
<p>O problema é que ao fim do processo, depois de clicar em OK surgia a seguinte mensagem de erro:</p>
<p><span style="color: #ff0000;"><strong>Unable to open the physical file &#8220;C:\AdventureWorks\AdventureWorks_Data.mdf&#8221;. Operating system error 5: &#8220;5(failed to retrieve text for this error. Reason: 15105)&#8221;. (Microsoft SQL Server, Error: 5120)</strong></span></p>
<p>Bom, inicialmente imaginei que meu arquivo estivesse com problemas físicos&#8230; ou eu estivesse sem as devidas permissões. Depois de algumas averiguações vi que minha conta tinha as permissões&#8230; portanto o problema era outro.</p>
<p>Pesquisando na net vi uma sugestão para executar o <strong>Management Studio</strong> como administrador e isso resolveu meu problema:</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/06/RunAsAdministrator.png"><img class="aligncenter size-full wp-image-936" title="RunAsAdministrator" src="http://silasmendes.com/dba/wp-content/uploads/2011/06/RunAsAdministrator.png" alt="" width="294" height="153" /></a></p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/erro-no-attach-do-banco-no-windows-7/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solucionando usuários orfãos</title>
		<link>http://silasmendes.com/dba/resolvendo-usuarios-orfaos</link>
		<comments>http://silasmendes.com/dba/resolvendo-usuarios-orfaos#comments</comments>
		<pubDate>Tue, 18 Jan 2011 09:44:38 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[SQL SERVER 2000]]></category>
		<category><![CDATA[SQL SERVER 2005]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[duplicado]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[orfão]]></category>
		<category><![CDATA[sp_change_users_login]]></category>
		<category><![CDATA[Sql Server]]></category>
		<category><![CDATA[usuário]]></category>

		<guid isPermaLink="false">http://silasmendes.com/dba/?p=838</guid>
		<description><![CDATA[Um problema comum: Você restaura um backup numa nova instância e ao tentar conceder as permissões para seus usuários encontra o seguinte erro: User, group, or role &#8216;nome_do_usuario&#8216; already exists in the current database. (No fim deste post está disponível um &#8230; <a href="http://silasmendes.com/dba/resolvendo-usuarios-orfaos">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Um problema comum:</p>
<p>Você restaura um backup numa nova instância e ao tentar conceder as permissões para seus usuários encontra o seguinte erro:</p>
<p><span style="color: #ff0000;">User, group, or role &#8216;<em>nome_do_usuario</em>&#8216; already exists in the current database.</span></p>
<blockquote>
<h5><strong><em>(No fim deste post está disponível um arquivo contendo base e scripts utilizados neste cenário.)</em></strong></h5>
</blockquote>
<p>Ou seja, o login já existe na instância e ao tentar defini-lo como usuário da base, o SQL reclama que ele <span style="text-decoration: underline;"><em>já é</em></span> um usuário da base de dados; no entanto, ao tentar conectar no banco com este usuário o SQL Server adverte que o mesmo não tem permissões para se conectar:</p>
<div id="_mcePaste"><span style="color: #ff0000;">Msg 916, Level 14, State 1, Line 1</span></div>
<div id="_mcePaste"><span style="color: #ff0000;">The server principal &#8220;<em>nome_do_usuario</em>&#8221; is not able to access the database &#8220;<em>nome_do_banco</em>&#8221; under the current security context.</span></div>
<p>&#8230; assim não é possível conceder permissões ao usuário e nem utilizá-lo.</p>
<p><img class="alignright size-full wp-image-843" title="orfao_" src="http://silasmendes.com/dba/wp-content/uploads/2011/01/orfao_.jpg" alt="" width="186" height="285" /></p>
<p>Normalmente este problema ocorre porque o login em questão já era usuário da base de dados em sua instância de origem. Ao restaurar o backup em outra instância, onde o mesmo login existe, o SQL Server não estabele um link automático entre o login pré-existente e o usuário que veio junto com base restaurada; assim surgem os <strong>usuários órfãos</strong>.</p>
<p>Veja que é um problema muito comum, no entanto, muitas pessoas tentam resolve-lo apagando o usuário da base e recriando novamente a partir do login; no entanto, ao fazer isto, perceba que perdemos todas as configurações atribuídas àquele usuário na base determinada, como permissões e etc.</p>
<p>Para solucionar este problema adequadamente utilizamos o procedimento: <strong>sp_change_users_login</strong></p>
<p>Inicialmente podemos executar a procedure (dentro da base restaurada) com o seguinte parâmetro:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_change_users_login 'Report';
</pre>
<p>Com este parâmetro o procedimento irá mostrar todos os usuários órfãos da sua base; ou seja, usuários que existem na sua base de dados, mas que não possuem um login correspondente:</p>
<p><a href="http://silasmendes.com/dba/wp-content/uploads/2011/01/post_orfao.png"><img class="aligncenter size-full wp-image-852" title="post_orfao" src="http://silasmendes.com/dba/wp-content/uploads/2011/01/post_orfao.png" alt="" width="336" height="70" /></a></p>
<p>Para solucionar efetivamente o problema, executamos a procedure com diferentes parâmetros. No exemplo abaixo, executamos a procedure passando como parâmetro o nome do usuário órfão e o login correspondente. Ao executá-lo, o SQL Server estabelece uma relação entre ambos:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_change_users_login
	'Update_One',
	'usuario42', 'usuario42';
</pre>
<p>Note que <strong>o nome do login e do usuário não precisam ser iguais</strong>, no entanto é muito comum utilizamos o mesmo nome para logins e usuários, então para abreviar a solução podemos utilizar somente:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_change_users_login 'Auto_Fix', 'usuario42';
</pre>
<p>Assim o SQL Server entende que a relação deverá ocorrer entre um usuário e um login de mesmo nome.</p>
<p>Este procedimento pode ser utilizado também quando você possuir um usuário, mas ainda não possuir um login correspondente criado; assim em um único comando é possível cadastrar o novo login, atribuir sua senha  e estabeler a relação entre eles; veja o exemplo:</p>
<pre class="brush: sql; title: ; notranslate">
EXEC sp_change_users_login
	'Auto_Fix',
	'usuario42', NULL,
	'@#mochil3ir0'; -- senha
</pre>
<p><strong>Conclusão</strong></p>
<p>Neste post entendemos o que são usuários orfãos e como estabeler vínculos entre logins e usuários de banco de dados utilizando o procedimento <strong>sp_change_users_login</strong>. Este procedimento tem diferentes comportamentos de acordo com os parâmetros passados. Utilizar este procedimento simplifica a configuração da sua base de dados e mantém todas as características de seus usuários previamente configuradas.</p>
<p>Para simular este erro e sua solução, <a href="http://silasmendes.com/dba/wp-content/uploads/2011/01/EXEMPLO_usuário_orfão.zip">baixe este arquivo</a> contendo a base e script do cenário.</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/resolvendo-usuarios-orfaos/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Problemas no Database Mail</title>
		<link>http://silasmendes.com/dba/database-mail</link>
		<comments>http://silasmendes.com/dba/database-mail#comments</comments>
		<pubDate>Tue, 10 Feb 2009 01:01:48 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dica rápida]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[SQL SERVER 2005]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[database mail]]></category>
		<category><![CDATA[sp_notify_operator]]></category>
		<category><![CDATA[sql server agent]]></category>
		<category><![CDATA[sql server email]]></category>

		<guid isPermaLink="false">http://diariodba.wordpress.com/?p=108</guid>
		<description><![CDATA[Você configurou o Database Mail, criou operadores, foi na propriedade Notifications do job e definiu um operador pra receber e-mail na ocorrência de uma falha; no entanto o e-mail não é enviado. Você resolve dar uma olhada no log pra &#8230; <a href="http://silasmendes.com/dba/database-mail">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Você configurou o Database Mail, criou operadores, foi na propriedade Notifications do job e definiu um operador pra receber e-mail na ocorrência de uma falha; no entanto o e-mail não é enviado.</p>
<p>Você resolve dar uma olhada no log pra entender o que está acontecendo e então encontra a seguinte mensagem:</p>
<p><span style="color:#ff0000;"><strong> NOTE: Failed to notify &#8216;nome_do_operador&#8217; via email.</strong></span><strong> </strong></p>
<p><strong> </strong>Pra acertar isso va na propriedade <em>Alert System</em> do Sql Server Agent e marque a opção <strong>Enable mail profile</strong>.  Pronto. Agora é só reiniciar o agent e seguir em frente :)</p>
<p>(Não esqueça de reiniciar o agent!)</p>
<p>Bom trabalho!</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/database-mail/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erro na instalação do SQL 2008 (Parte II)</title>
		<link>http://silasmendes.com/dba/instalando-o-sql-server-2008-parte-ii</link>
		<comments>http://silasmendes.com/dba/instalando-o-sql-server-2008-parte-ii#comments</comments>
		<pubDate>Tue, 04 Nov 2008 02:43:55 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dica rápida]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[Instalar SQL Server 2008]]></category>
		<category><![CDATA[MSXML]]></category>
		<category><![CDATA[msxml6r.dll]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://diariodba.wordpress.com/?p=97</guid>
		<description><![CDATA[Depois de mais um tempo ausente volto pra falar sobre o erro da instalação do SQL Server 2008 no Windows XP (veja link do post aqui). Claro que esse não é o cenário ideal para instalação do SQL Server, mas &#8230; <a href="http://silasmendes.com/dba/instalando-o-sql-server-2008-parte-ii">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin:0;">Depois de mais um tempo ausente volto pra falar sobre o erro da instalação do SQL Server 2008 no Windows XP (veja link do post <a href="http://diariodba.wordpress.com/2008/08/21/instalando-o-sql-server-2008-parte-i/" target="_blank">aqui</a>). Claro que esse não é o cenário ideal para instalação do SQL Server, mas se você quer instalá-lo no seu notebook ou PC, pra conhecer, estudar ou etc, então pode se deparar com o seguinte erro:</p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="color:#ff0000;">The Windows Installer service cannot update the system file C:\WINDOWS\system32\msxml6r.dll because the file is protected by Windows.  You may need to update your operating system for this program to work correctly.</span></p>
<p class="MsoNormal" style="margin:0;">
<p style="margin:0;">Isso aconteceu comigo e depois de muitas pesquisas, agora em Outubro a Microsoft liberou um artigo falando sobre este erro.</p>
<p class="MsoNormal" style="margin:0;">
<p style="margin:0;">Segundo o artigo, o erro ocorre quando tentamos instalar uma versão inglês do SQL Server (2005 ou 2008) num Windows XP SP3 não-inglês.</p>
<p class="MsoNormal" style="margin:0;">
<p style="margin:0;">Solução? Não existe uma propriamente dita até o momento, mas se ao verificar o arquivo de log da instalação do SQL Server (na busca do Windows procure por SQLSetup*MSXML6*) você encontrar uma mensagem como está: <span style="color:#0000ff;">&#8220;MSXML 6.0 Parser &#8212; Installation completed successfully.&#8221;</span>, você poderá ignorar este erro.</p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;">Para ler o artigo na integra, acesse este link: <a href="http://support.microsoft.com/kb/958897">http://support.microsoft.com/kb/958897</a></p>
<p class="MsoNormal" style="margin:0;">
<p style="margin:0;">Bom trabalho, bons estudos!</p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;">
<h4><a href="http://silasmendes.com/dba/?p=147" target="_self">Tutorial: Instalando o SQL Server 2008 Express.</a></h4>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;">
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/instalando-o-sql-server-2008-parte-ii/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Erro na instalação do SQL 2008 (Parte I)</title>
		<link>http://silasmendes.com/dba/instalando-o-sql-server-2008-parte-i</link>
		<comments>http://silasmendes.com/dba/instalando-o-sql-server-2008-parte-i#comments</comments>
		<pubDate>Thu, 21 Aug 2008 17:11:01 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[Instalação]]></category>
		<category><![CDATA[Instalar SQL Server 2008]]></category>
		<category><![CDATA[SQL Prompt]]></category>

		<guid isPermaLink="false">http://diariodba.wordpress.com/?p=66</guid>
		<description><![CDATA[Ontem baixei a versão final do SQL Server 2008 e instalei aqui. A versão é a Enterprise (Trial) e tive dois problemas durante a instalação. Um foi bem curioso, antes de iniciar a instalação o instalador informou que não poderia &#8230; <a href="http://silasmendes.com/dba/instalando-o-sql-server-2008-parte-i">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin:0 0 10pt;">Ontem baixei a versão final do SQL Server 2008 e instalei aqui.</p>
<p class="MsoNormal" style="margin:0 0 10pt;">A versão é a <strong>Enterprise (Trial) </strong> e tive dois problemas durante a instalação.</p>
<p class="MsoNormal" style="margin:0 0 10pt;">Um foi bem curioso, antes de iniciar a instalação o instalador informou que não poderia prosseguir porque existiam ferramentas do SQL Server 2005 Express instaladas e que para continuar a instalação eu deveria removê-las. O detalhe é que eu nunca instalei nenhuma versão Express nessa estação(!).</p>
<p class="MsoNormal" style="margin: 0 0 10pt;"><span style="color: #ff0000;">&#8220;The SQL Server 2005 Express Tools are installed. To continue, remove the SQL Server 2005 Express Tools.&#8221;</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;">Ok&#8230; numa pesquisa rápida no fórum da Technet encontrei outros caras que já tiveram o mesmo problema e fiquei surpreso ao saber que o problema era devido a uma ferramenta que instalei, a <strong>SQL Prompt</strong> da Red Gate (essa ferramenta adiciona Intellisense no Query Analyser e SSMS). Bom, removi a ferramenta e o processo continuou normalmente&#8230;</p>
<p class="MsoNormal" style="margin:0 0 10pt;">&#8230;até eu encontrar outro erro:</p>
<p class="MsoNormal" style="margin: 0 0 10pt;"><span style="color: #ff0000;">The Windows Installer service cannot update the system file C:\WINDOWS\system32\msxml6r.dll because the file is protected by Windows.  You may need to update your operating system for this program to work correctly.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;">Nas buscas pelo google e technet vi que o assunto está sempre relacionado ao Windows XP e o SP2&#8230; vou começar alguns testes hoje a tarde. Se alguém aí já viveu essa situação e tem uma sugestão de como resolver deixe sua contribuição :)</p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;"> </span><span style="color: #ff0000;"><strong>Editado</strong></span><span style="font-size:small;font-family:Calibri;">: Solução para este problema <a href="http://silasmendes.com/dba/?p=97" target="_self">neste post</a>:</span></p>
<h4><a href="http://silasmendes.com/dba/?p=147" target="_self">Tutorial: Instalando o SQL Server 2008 Express.</a></h4>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/instalando-o-sql-server-2008-parte-i/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SQL Server 2005 – Erro Import/Export</title>
		<link>http://silasmendes.com/dba/sql-server-2005-erro-importexport</link>
		<comments>http://silasmendes.com/dba/sql-server-2005-erro-importexport#comments</comments>
		<pubDate>Thu, 07 Aug 2008 20:12:39 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dica rápida]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[DTS.dll]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[sql server 2005]]></category>

		<guid isPermaLink="false">http://diariodba.wordpress.com/?p=42</guid>
		<description><![CDATA[Os dias estão bem corridos e só hoje pude resolver aquele problema da importação via interface (SSMS) que ocorreu na semana passada. A mensagem de erro completa é esta: The SSIS Runtime object could not be created. Verify that DTS.dll is &#8230; <a href="http://silasmendes.com/dba/sql-server-2005-erro-importexport">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Os dias estão bem corridos e só hoje pude resolver aquele problema da importação via interface (SSMS) que ocorreu na semana passada. A mensagem de erro completa é esta:</p>
<p><strong><span style="color:#ff0000;">The SSIS Runtime object could not be created. Verify that DTS.dll is available and registered. The wizard cannot continue and it will terminate.</span></strong></p>
<p><span style="color:#ff0000;">Unable to cast COM object of type &#8216;Microsoft.SqlServer.Dts.Runtime.Wrapper.PackageNeutralClass&#8217; to interface type &#8216;Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSContainer90&#8242;. </span></p>
<p>Procurei na internet e muita gente sugeriu a reinstalação das ferramentas, no entanto encontrei uma solução mais curta que resolveu de imediato, apenas registrei a dll, veja:</p>
<p>No menu Iniciar &gt; Executar</p>
<p><strong>regsvr32.exe  &#8220;C:\Arquivos de programas\Microsoft SQL Server\90\DTS\Binn\DTS.dll&#8221;</strong></p>
<p>e enter :)</p>
<p>Pronto!</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/sql-server-2005-erro-importexport/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Inserindo registros via Bulk Insert</title>
		<link>http://silasmendes.com/dba/bulk-insert</link>
		<comments>http://silasmendes.com/dba/bulk-insert#comments</comments>
		<pubDate>Fri, 25 Jul 2008 19:10:48 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dica rápida]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[SQL SERVER 2000]]></category>
		<category><![CDATA[SQL SERVER 2005]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[SQL SERVER 7]]></category>
		<category><![CDATA[bulk insert]]></category>
		<category><![CDATA[importar]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://diariodba.wordpress.com/?p=37</guid>
		<description><![CDATA[Realizar tarefas utilizando interfaces e nosso amigo (mickey) mouse pode ser muito confortável, no entanto, nem sempre elas estão disponíveis, ou em alguns cenários podem não ser a solução mais adequada. Hoje pela manhã precisava importar dados para uma de &#8230; <a href="http://silasmendes.com/dba/bulk-insert">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="margin:0 0 10pt;">Realizar tarefas utilizando interfaces e nosso amigo (mickey) mouse pode ser muito confortável, no entanto, nem sempre elas estão disponíveis, ou em alguns cenários podem não ser a solução mais adequada.</p>
<p style="margin:0 0 10pt;">Hoje pela manhã precisava importar dados para uma de nossas bases, a tarefa era urgentíssima, mas como sabemos, é justamente nessas horas que dá tudo errado! Meu Management Studio acordou mal humorado e quando cliquei na opção importar, ele <em>disse </em>sem pestanejar:</p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color: #ff0000;">Unable to cast COM object of type &#8216;Microsoft.SqlServer.Dts.Runtime.Wrapper.PackageNeutralClass&#8217; to interface type &#8216;Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSContainer90&#8242; (…)</span></p>
<p style="margin:0 0 10pt;">“Putz. Ok, hoje é sexta-feira, posso ir no Google e pesquisar sobre esse erro”. Enquanto pensava nisso meu gerente liga perguntando: “Já importou os dados?”&#8230;</p>
<p style="margin:0 0 10pt;">Ok, vamos deixar o Google pra lá (por enquanto).</p>
<p style="margin:0 0 10pt;">Existe uma forma muito prática de importar dados no SQL Server e foi a ela que recorri, o comando T-SQL é o BULK INSERT e é bem simples, veja o exemplo:</p>
<blockquote>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">BULK</span><span style="font-size:10pt;font-family:&quot;"> <span style="color:#0000ff;">INSERT</span> tbTesteImport <span style="color:#0000ff;">FROM</span> <span style="color:#ff0000;">&#8216;C:\arquivos_temp\tx_unid.txt&#8217;</span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">WITH</span><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;font-family:&quot;"> <span style="color:#808080;">(</span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;font-family:&quot;"> FIRSTROW <span style="color:#808080;">=</span> 2<span style="color:#808080;">,</span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;font-family:&quot;"> FIELDTERMINATOR <span style="color:#808080;">=</span><span style="color:#ff0000;">&#8216;;&#8217;</span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;font-family:&quot;"> <span style="color:#808080;">);</span></span></p>
</blockquote>
<p style="line-height:normal;margin:0;">Neste caso o arquivo que eu precisava importar era o <strong>tx_unid.txt</strong> e ele foi gravado em <strong>C:\arquivos_temp</strong> do meu servidor SQL. Os dados desse arquivo foram importados para a tabela <strong>[tbTesteImport] </strong>e como ele tinha algumas particularidades tive que informar no BULK INSERT que ele deveria ignorar a primeira linha (era a linha de cabeçalho) e o caractere que separava um campo do outro era o ponto-e-vírgula <strong>(FIELDTERMINATOR =&#8217;;')</strong>.</p>
<p class="MsoNormal" style="margin:0 0 10pt;">
<p style="line-height:normal;margin:0;">Pronto! Arquivo importado.</p>
<p style="line-height:normal;margin:0;">O BULK INSERT tem diversos parâmetros que você pode conferir <a href="http://msdn.microsoft.com/en-us/library/ms188365.aspx" target="_blank">aqui</a>.</p>
<p class="MsoNormal" style="line-height:normal;margin:0;">
<p style="line-height:normal;margin:0;">Em outra oportunidade irei comentar outras vantagens da utilização do BULK INSERT e também pretendo comentar sobre o BCP, mas agora vou ao Google ver se encontro o remédio pro mau humor do meu Management Studio :)</p>
<p style="line-height:normal;margin:0;">
<p class="MsoNormal" style="line-height:normal;margin:0;">
<p style="line-height:normal;margin:0;">Até +</p>
<p style="margin:0 0 10pt;">
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/bulk-insert/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MSDE – Restaurar backup &gt; que 2 GB</title>
		<link>http://silasmendes.com/dba/msde-restaurar-backup-maior-que-2-gb</link>
		<comments>http://silasmendes.com/dba/msde-restaurar-backup-maior-que-2-gb#comments</comments>
		<pubDate>Fri, 04 Jul 2008 20:41:23 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dica rápida]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[SQL SERVER 2000]]></category>
		<category><![CDATA[MSDE]]></category>
		<category><![CDATA[restaurar backup]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://diariodba.wordpress.com/?p=16</guid>
		<description><![CDATA[(Essa é para os workaholics)   Chega sexta feira, você pega o backup da base de dados do serviço e leva pra casa pra adiantar o trabalho (ou correr atrás do prejuízo). Aí no sabadão, ao tentar restaurar o backup: &#8230; <a href="http://silasmendes.com/dba/msde-restaurar-backup-maior-que-2-gb">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="margin:0;">(Essa é para os workaholics)</p>
<p class="MsoNormal" style="margin:0;"> </p>
<p style="margin:0;">Chega sexta feira, você pega o backup da base de dados do serviço e leva pra casa pra adiantar o trabalho (ou correr atrás do prejuízo). Aí no sabadão, ao tentar restaurar o backup: <span style="color:#ff0000;">ERRO</span>.</p>
<p class="MsoNormal" style="margin:0;">Tenta o restore de novo e o mesmo erro. Sacanagem&#8230;</p>
<p style="margin:0;">Então liga pra um amigo, pesquisa no Google e descobre: <strong>o MSDE tem uma limitação, não aceita bases de dados maiores que 2 GB!!</strong></p>
<p class="MsoNormal" style="margin:0;"> </p>
<p style="margin:0;">Ok, como (quase) tudo na vida, existe um “jeitinho” pra resolver isso, mas sinceramente não sugiro esse procedimento em nenhum ambiente de produção/homologação e etc. <strong>Repito</strong>: não sugiro esse procedimento em nenhum ambiente de produção/homologação e etc.</p>
<p class="MsoNormal" style="margin:0;"> </p>
<p style="margin:0;">Para utilizar uma base &gt; 2GB no MSDE você vai precisar dos arquivos MDF e LDF da sua base de dados original (a do seu trabalho). O procedimento é simples, mas tem contratempos, porque para copiar esses arquivos a base deve estar “desatachada” (ficou estranho mas não encontrei um termo mais apropriado) ou o serviço do SQL deve estar parado. Escolha uma das duas opções e copie os arquivos.</p>
<p class="MsoNormal" style="margin:0;"> </p>
<p style="margin:0;">Na sua casa o procedimento vai ser o seguinte.</p>
<p class="MsoNormal" style="margin:0;"> </p>
<p style="margin:0;">1 &#8211; No MSDE crie uma base de dados com o mesmo nome que ela tem em seu trabalho;</p>
<p style="margin:0;">2 &#8211; Verifique onde os arquivos físicos da base foram criados;</p>
<p style="margin:0;">3 &#8211; Pare o serviço do SQL Server;</p>
<p style="margin:0;">4 &#8211; Pegue os arquivos MDF e LDF de seu serviço e cole (substitua!) os arquivos que o SQL acabou de criar para a sua nova base (é muito importante que os arquivos tenham o mesmo nome!);</p>
<p style="margin:0;">5 &#8211; Inicie o serviço do SQL Server e &#8230;</p>
<p class="MsoNormal" style="margin:0;"> </p>
<p style="margin:0;">Bom trabalho!</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/msde-restaurar-backup-maior-que-2-gb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modo de autenticação</title>
		<link>http://silasmendes.com/dba/modo-de-autenticacao</link>
		<comments>http://silasmendes.com/dba/modo-de-autenticacao#comments</comments>
		<pubDate>Wed, 02 Apr 2008 22:12:33 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Dica rápida]]></category>
		<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[SQL SERVER 2000]]></category>
		<category><![CDATA[SQL SERVER 2005]]></category>
		<category><![CDATA[SQL SERVER 2008]]></category>
		<category><![CDATA[SQL SERVER 2008 R2]]></category>
		<category><![CDATA[SQL SERVER 7]]></category>

		<guid isPermaLink="false">http://diariodba.wordpress.com/?p=4</guid>
		<description><![CDATA[Existe uma situação famosa no Microsoft SQL Server que costuma dar trabalho a muitos iniciantes e até mesmo a alguns DBAs mais experientes. Situação: Você acaba de instalar seu Microsoft SQL Server e logo no primeiro acesso surge o erro: Login &#8230; <a href="http://silasmendes.com/dba/modo-de-autenticacao">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="margin:0;" class="MsoNormal"><span style="font-family:Arial;"></span></p>
<p style="margin:0;" class="MsoNormal"><span style="font-family:Arial;"></span></p>
<p><span style="font-family:Arial;">Existe uma situação famosa no Microsoft SQL Server que costuma dar trabalho a muitos iniciantes e até mesmo a alguns DBAs mais experientes.</span></p>
<p><span style="font-family:Arial;"></span><strong><span style="font-family:Arial;">Situação: </span></strong><span style="font-family:Arial;"></span><span style="font-family:Arial;"></span><span style="font-family:Arial;">Você acaba de instalar seu Microsoft SQL Server e logo no primeiro acesso surge o erro:</span></p>
<p><span style="font-family:Arial;"></span><font color="#ff0000"><i><span style="font-family:Arial;">Login failed for user &#8216;sa&#8217;. The user is not associated with a trusted SQL Server connection. </span></i><i><span style="font-family:Arial;">(Microsoft SQL Server, Error: 18452)</span></i><span style="font-family:Arial;"> </span></font></p>
<p><span style="font-family:Arial;"></span><span style="font-family:Arial;">Ok, isso acontece porque o SQL Server tem duas formas de autenticação: Autenticação Windows e Mixed Mode (Autenticação com login Windows e/ou login SQL Server), e por padrão, a instalação vem configurada como Windows Authentication, logo, quando </span><span style="font-family:Arial;">o usuário tenta acessar a instância com um login do SQL Server (normalmente o famoso ‘SA’) o sistema manda aquela advertência. </span></p>
<p><span style="font-family:Arial;"></span><strong><span style="font-family:Arial;">Antes da solução, é bom frisar que por questões de segurança a Microsoft recomenda o modo Windows Authentication</span></strong><span style="font-family:Arial;">, mas se você quer/precisa usar o SA ou outro login criado diretamente no SQL Server, siga os seguintes passos:</span></p>
<p><span style="font-family:Arial;"></span><span style="font-family:Arial;"></span><span style="font-family:Arial;">Através do Microsoft SQL Server Management Studio (ou Enterprise Manager na versão 2000), clique sobre a instância (Nome do Servidor) com o botão direito e escolha a opção <i>Properties</i>. Na janela <i>Server Properties</i>, clique em <i>Security</i>; em Server authentication clique em <i>SQL Server</i><i> and Windows Authentication mode</i>. </span></p>
<p><span style="font-family:Arial;">Pra concluir esta etapa clique no botão OK.</span></p>
<p><span style="font-family:Arial;"></span><span style="font-family:Arial;"></span><span style="font-family:Arial;">Depois disso o sistema apresenta a seguinte mensagem (que infelizmente nem todos os usuários lêem):</span></p>
<p><span style="font-family:Arial;"></span><i><span style="font-family:Arial;">Some of your configuration changes will not take effect until SQL Server is <u>restarted</u>.</span></i><span style="font-family:Arial;"> </span></p>
<p><span style="font-family:Arial;"></span><span style="font-family:Arial;">Então é isso, para efetivar a alteração desta configuração é necessário reiniciar o serviço do SQL Server. </span><span style="font-family:Arial;"></span><span style="font-family:Arial;">Existem outras possíveis razões para a ocorrência deste erro, falarei sobre elas em outro dia. </span></p>
<p><span style="font-family:Arial;"></span><span style="font-family:Arial;"></span><span style="font-family:Arial;">Se eu não consegui te ajudar sugiro uma consulta ao Books Online ou aquela pesquisada básica no Google, ok?</span><span style="font-family:Arial;">   </span></p>
<p><span style="font-family:Arial;"></span></p>
<p><span style="font-family:Arial;"></span><span style="font-family:Arial;">Um abraço e ótima semana.</span><span style="font-family:Arial;"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/modo-de-autenticacao/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

