<?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>SQL Server &#38; Banco de Dados</description>
	<lastBuildDate>Thu, 29 Jul 2010 15:01:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<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 02:01:48 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[Vida Real]]></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 entender o que está acontecendo e então encontra a seguinte mensagem: NOTE: Failed to notify [...]]]></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 03:43:55 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[Vida Real]]></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 se você quer instalá-lo no seu notebook ou PC, pra conhecer, estudar ou etc, então [...]]]></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[Erros $#$%!]]></category>
		<category><![CDATA[Vida Real]]></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 prosseguir porque existiam ferramentas do SQL Server 2005 Express instaladas e que para continuar 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>2</slash:comments>
		</item>
		<item>
		<title>Comparando text / ntext</title>
		<link>http://silasmendes.com/dba/comparando-text-ntext</link>
		<comments>http://silasmendes.com/dba/comparando-text-ntext#comments</comments>
		<pubDate>Mon, 18 Aug 2008 17:13:31 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[comparar]]></category>
		<category><![CDATA[datatype]]></category>
		<category><![CDATA[sql server 2000]]></category>

		<guid isPermaLink="false">http://diariodba.wordpress.com/?p=57</guid>
		<description><![CDATA[  No SQL Server 2005 temos os novos campos do tipo VAR&#8230;(MAX) que vieram aliviar o trabalho de muita gente. Um dos problemas mais comuns na versão anterior (2000) é quando precisamos comparar dados de campos do tipo text ou ntext, aí nos deparamos com um erro do tipo: Server: Msg 306, Level 16, State [...]]]></description>
			<content:encoded><![CDATA[<p style="margin:0 0 10pt;"> </p>
<p style="margin:0 0 10pt;">No SQL Server 2005 temos os novos campos do tipo VAR&#8230;(MAX) que vieram aliviar o trabalho de muita gente. Um dos problemas mais comuns na versão anterior (2000) é quando precisamos comparar dados de campos do tipo text ou ntext, aí nos deparamos com um erro do tipo:</p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#ff0000;">Server: Msg 306, Level 16, State 1, Line 1</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#ff0000;">The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.</span></p>
<p style="margin:0 0 10pt;">Eu já vivi essa situação algumas vezes e deixo aqui a forma como tentei resolver (Se tiverem outras sugestões fiquem a vontade para expor, ok?).</p>
<p style="margin:0 0 10pt;">(Não fiz testes de perfomance nessa solução, o foco está somente em comparar as colunas tipo text / ntext.)</p>
<p style="margin:0 0 10pt;">Imagine que eu tenha duas tabelas:</p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#0000ff;">CREATE TABLE #tb_msg_tela<br />
(id INT IDENTITY(1,1), texto TEXT)</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#0000ff;">GO</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#0000ff;">CREATE TABLE #tb_msg_impressao<br />
(id INT IDENTITY(1,1), texto TEXT)</span></p>
<p style="margin:0 0 10pt;">Com os seguintes dados:</p>
<p style="margin:0 0 10pt;"><span style="color:#0000ff;">INSERT INTO #tb_msg_tela VALUES <span style="color:#ff0000;">(NULL)<br />
</span>INSERT INTO #tb_msg_tela VALUES (&#8216;Campo text&#8217;)<br />
INSERT INTO #tb_msg_tela VALUES (&#8216;Teste <span style="color:#ff0000;">comparação</span>&#8216;)<br />
INSERT INTO #tb_msg_tela VALUES (&#8216;Se ca<span style="color:#ff0000;">í</span>sse para o e<span style="color:#ff0000;">x</span>terior, <span style="color:#ff0000;">para </span>o limite do universo, encontraria uma perto e pôsteres que indicassem BECO SEM SAÍDA?&#8217;)</span></p>
<p style="margin:0 0 10pt;"><span style="color:#0000ff;">INSERT INTO #tb_msg_impressao VALUES <span style="color:#ff0000;">(&#8221;)<br />
</span>INSERT INTO #tb_msg_impressao VALUES (&#8216;Campo text&#8217;)<br />
INSERT INTO #tb_msg_impressao VALUES (&#8216;Teste <span style="color:#ff0000;">comparacao</span>&#8216;)<br />
INSERT INTO #tb_msg_impressao VALUES (&#8216;Se ca<span style="color:#ff0000;">i</span>sse para o e<span style="color:#ff0000;">s</span>terior, <span style="color:#ff0000;">p/</span> o limite do universo, encontraria uma perto e pôsteres que indicassem BECO SEM SAÍDA?&#8217;)</span></p>
<p style="margin:0 0 10pt;">Observe que existem diferenças em alguns textos (em vermelho).</p>
<p style="margin:0 0 10pt;">Para realizar o relacionamento das duas tabelas e encontrar os campos diferentes não podemos simplesmente utilizar:</p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#0000ff;">SELECT * FROM #tb_msg_tela a, #tb_msg_impressao b<br />
WHERE a.id = b.id AND <span style="color:#ff0000;">a.texto &lt;&gt; b.texto</span></span></p>
<p style="margin:0 0 10pt;">Essa consulta retornará um erro porque estamos comparando os campos text utilizando o &lt;&gt;.</p>
<p style="margin:0 0 10pt;">Então o primeiro passo é encontrar o maior texto nessa coluna, para isso podemos usar as funções DATALENGHT e MAX:</p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#0000ff;">SELECT MAX(DATALENGTH(texto)) FROM #tb_msg_tela<br />
SELECT MAX(DATALENGTH(texto)) FROM #tb_msg_impressao</span></p>
<p style="margin:0 0 10pt;">O resultado será:</p>
<p style="margin:0 0 10pt;">&#8212;&#8212;&#8212;&#8211;</p>
<p style="margin:0 0 10pt;">658</p>
<p style="margin:0 0 10pt;">&#8212;&#8212;&#8212;&#8211;</p>
<p style="margin:0 0 10pt;">656</p>
<p style="margin:0 0 10pt;">Então sabemos que o maior texto dessa coluna não ultrapassa 700 caracteres, logo, podemos utilizar esse número como apoio no próximo passo, onde utilizaremos a função SUBSTRING:</p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span style="color:#0000ff;">SELECT<br />
                *<br />
FROM  <br />
                #tb_msg_tela a,<br />
                #tb_msg_impressao b<br />
WHERE<br />
                a.id = b.id<br />
                AND ISNULL(SUBSTRING(a.texto, 0, 700),&#8221;) &lt;&gt; ISNULL(SUBSTRING(b.texto, 0, 700),&#8221;) </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0 0 10pt;"><span lang="EN-US"> </span></p>
<p style="line-height:normal;margin:0 0 10pt;">A função <strong>ISNULL</strong> é importante pois sem ela os campos Nulos serão ignorados.</p>
<p style="line-height:normal;margin:0 0 10pt;">Veja que a consulta só ira retornar os campos com as diferenças.</p>
<p class="MsoNormal" style="margin:0 0 10pt;">É um processo simples, mas que pode dar dor de cabeça por conta das limitações do tipo de dados. Pra quem ta iniciando o desenvolvimento utilizando o SQL Server 2005 a recomendação é: substitua os datatypes <em>ntext</em>, <em>text</em>, <em>image</em> por <em>nvarchar(Max), varchar(Max)</em> e <em>varbinary(Max).</em> Além de outras vantagens, com os novos datatypes não existem as antigas diferenças entre varchar e text.</p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:Calibri;"><span style="font-family:Calibri;"> </span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/comparando-text-ntext/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2005 &#8211; 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[Erros $#$%!]]></category>
		<category><![CDATA[Vida Real]]></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 available and registered. The wizard cannot continue and it will terminate. Unable to cast COM [...]]]></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[Erros $#$%!]]></category>
		<category><![CDATA[Vida Real]]></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 nossas bases, a tarefa era urgentíssima, mas como sabemos, é justamente nessas horas que dá [...]]]></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 &#8211; 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[Erros $#$%!]]></category>
		<category><![CDATA[Vida Real]]></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: ERRO. Tenta o restore de novo e o mesmo erro. Sacanagem&#8230; Então liga pra um [...]]]></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>Executar DTS via código</title>
		<link>http://silasmendes.com/dba/sql-server-executar-dts-via-codigo</link>
		<comments>http://silasmendes.com/dba/sql-server-executar-dts-via-codigo#comments</comments>
		<pubDate>Thu, 03 Jul 2008 17:32:46 +0000</pubDate>
		<dc:creator>Silas Mendes</dc:creator>
				<category><![CDATA[Erros $#$%!]]></category>
		<category><![CDATA[Vida Real]]></category>
		<category><![CDATA[DTS]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://diariodba.wordpress.com/?p=14</guid>
		<description><![CDATA[Uma dúvida muito comum: Como executar um pacote DTS via código? Muito simples&#8230; podemos a partir do DOS digitar o seguinte comando: dtsrun /S nome_servidor /E /N nome_do_pacote   O pacote será executado. Aí me perguntam: Ah, mas eu quero executar a partir do SQL Server! Ok, existe a opção de utilizar a procedure xp_cmdshell para [...]]]></description>
			<content:encoded><![CDATA[<p>Uma dúvida muito comum:</p>
<p>Como executar um pacote DTS via código?</p>
<p>Muito simples&#8230; podemos a partir do DOS digitar o seguinte comando:</p>
<p><strong>dtsrun /S nome_servidor /E /N nome_do_pacote</strong></p>
<p class="MsoNormal"> </p>
<p>O pacote será executado.</p>
<p>Aí me perguntam: <em>Ah, mas eu quero executar a partir do SQL Server!</em></p>
<p>Ok, existe a opção de utilizar a procedure <strong>xp_cmdshell</strong> para executar o mesmo comando. Ficaria mais ou menos assim:</p>
<p><strong><span style="font-size:12pt;">EXEC master..xp_cmdshell &#8216;dtsrun /S nome_servidor /E /N nome_do_pacote&#8217;</span></strong></p>
<p><strong><span style="color:#ff0000;">Porém é bom deixar um alerta</span></strong>: Essa procedure só pode ser executada por sysadmins, e no SQL Server 2005 ela vem <strong>desabilitada</strong>, (se você quiser utilizá-la deverá realizar isso na SQL Server Surface Area). Isso tudo por razões de segurança, afinal ela tem o poder de executar comandos no sistema operacional&#8230; tire suas próprias conclusões sobre isso e pense se é viável habilitá-la em seu ambiente.</p>
<p>Pra finalizar, segue abaixo alguns parâmetros que podem ser interessantes na utilização do comando dtsrun:</p>
<ul>
<li>Executar comando utilizando login do Windows:<br />
<strong>/E</strong>  (Conexão confiável)</li>
<li>Executar comando utilizando login do SQL:<br />
<strong>/U login /P senha</strong></li>
<li>Se o pacote tiver uma senha:<br />
<strong>/M senha</strong></li>
</ul>
<p>Para ter acesso a uma relação completa digite apenas dtsrun no prompt do DOS e Enter ou acesse este link: <a href="http://msdn.microsoft.com/en-us/library/aa224467(SQL.80).aspx">http://msdn.microsoft.com/en-us/library/aa224467(SQL.80).aspx</a>.</p>
<p>Até +</p>
]]></content:encoded>
			<wfw:commentRss>http://silasmendes.com/dba/sql-server-executar-dts-via-codigo/feed</wfw:commentRss>
		<slash:comments>1</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[Erros $#$%!]]></category>
		<category><![CDATA[Vida Real]]></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 failed for user &#8216;sa&#8217;. The user is not associated with a trusted SQL Server connection. [...]]]></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>
