<?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>Erick Sasse &#187; SQL Server</title>
	<atom:link href="http://www.ericksasse.com.br/category/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ericksasse.com.br</link>
	<description>Desenvolvimento de software, tecnologia e afins.</description>
	<lastBuildDate>Wed, 25 Jan 2012 02:30:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SQL Server 2008: Resolvendo erro &#8220;filegroup is full&#8221;</title>
		<link>http://www.ericksasse.com.br/sql-server-2008-resolvendo-erro-filegroup-is-full/</link>
		<comments>http://www.ericksasse.com.br/sql-server-2008-resolvendo-erro-filegroup-is-full/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 22:14:06 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1216</guid>
		<description><![CDATA[Ontem um banco de dados SQL Server 2008 Express começou a dar a seguinte mensagem de erro: System.Data.OleDb.OleDbException: Could not allocate space for object &#8216;XXX&#8217; in database &#8216;XXX&#8217; because the &#8216;PRIMARY&#8217; filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth <a href="http://www.ericksasse.com.br/sql-server-2008-resolvendo-erro-filegroup-is-full/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ontem um banco de dados SQL Server 2008 Express começou a dar a seguinte mensagem de erro:</p>
<blockquote><p>System.Data.OleDb.OleDbException: Could not allocate space for object &#8216;XXX&#8217; in database &#8216;XXX&#8217; because the &#8216;PRIMARY&#8217; filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.</p></blockquote>
<p>Obviamente a primeira coisa que eu fiz foi verificar as configurações dos arquivos do banco. E estava tudo certo, ou seja, crescimento dos arquivos irrestrito, autogrowth ativado, etc. Verifiquei espaço em disco e existiam dezenas de gigas livres.</p>
<p>Depois de uma pesquisada na Internet encontrei alguém que teve <a href="http://stackoverflow.com/questions/1951647/primary-filegroup-is-full-in-sql-server-2008-standard-for-no-apparent-reason" target="_blank">o mesmo problema</a> que eu, e resolveu apenas desfragmentando o disco onde o banco de dados estava.</p>
<p>Pois bem, parei o SQL Server e mandei desfragmentar o disco. Quando terminou, reiniciei o serviço do banco e pronto, problema resolvido! Eu achei bem estranho, algo que eu provavelmente não tentaria se não tivesse achado alguma dica, então achei que era algo que valia a pena compartilhar.</p>
<p><strong>UPDATE:</strong> Alguns dias depois o problema voltou. Achei estranho porque depois do primeiro caso, agendamos o defrag automático dos discos durante a madrugada.  A mensagem era a mesma e não ajudava muito. Olhando nos logs do Windows fomos descobrir o real problema.</p>
<blockquote><p>CREATE DATABASE or ALTER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of 4096 MB per database.</p></blockquote>
<p>Alguém matou? Isso mesmo. Estávamos usando o SQL Server 2008 Express que é limitado a bancos de apenas 4GB e nosso banco tinha acabado de chegar nesse limite. Foi só atualizar para 2008 R2, que tem limite de 10GB, e o problema estava resolvido. Espero que desta vez em definitivo. Ou pelo menos até nosso banco chegar aos 10GB. <img src='http://www.ericksasse.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/sql-server-2008-resolvendo-erro-filegroup-is-full/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extrair primeiro nome usando SQL v2.0</title>
		<link>http://www.ericksasse.com.br/extrair-primeiro-nome-usando-sql-v2-0/</link>
		<comments>http://www.ericksasse.com.br/extrair-primeiro-nome-usando-sql-v2-0/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 11:11:52 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Firebird]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1104</guid>
		<description><![CDATA[Fiz o refactoring aplicando as ótimas dicas que recebi do pessoal no post anterior e a versão 2.0 da consulta ficou assim: Firebird SELECT LEFT(NOME_COMPLETO, POSITION(' ' IN (NOME_COMPLETO &#124;&#124; ' '))) FROM TABELA SQL Server SELECT LEFT(NOME_COMPLETO, CHARINDEX(' ', NOME_COMPLETO + ' ') ) FROM TABELA Muito melhor! Obrigado pelas dicas.]]></description>
			<content:encoded><![CDATA[<p>Fiz o refactoring aplicando as ótimas dicas que recebi do pessoal <a href="http://www.ericksasse.com.br/extrair-primeiro-nome-usando-sql/">no post anterior</a> e a versão 2.0 da consulta ficou assim:</p>
<p><strong>Firebird</strong></p>
<p><code>SELECT LEFT(NOME_COMPLETO, POSITION(' ' IN (NOME_COMPLETO || ' '))) FROM TABELA</code></p>
<p><strong>SQL Server</strong></p>
<p><code>SELECT LEFT(NOME_COMPLETO, CHARINDEX(' ', NOME_COMPLETO + ' ') ) FROM TABELA</code></p>
<p>Muito melhor! Obrigado pelas dicas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/extrair-primeiro-nome-usando-sql-v2-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Extrair primeiro nome usando SQL</title>
		<link>http://www.ericksasse.com.br/extrair-primeiro-nome-usando-sql/</link>
		<comments>http://www.ericksasse.com.br/extrair-primeiro-nome-usando-sql/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 19:47:18 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Firebird]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=1086</guid>
		<description><![CDATA[Você tem um campo string onde guarda o nome completo e precisa escrever uma consulta que traga apenas o primeiro nome. Eu cheguei ao resultado abaixo, não conseguindo uma consulta que funcionasse ao mesmo tempo com Firebird e SQL Server. Firebird SELECT IIF(POSITION(&#8216; &#8216; IN NOME_COMPLETO) &#62; 0, SUBSTRING(NOME_COMPLETO FROM 1 FOR POSITION(&#8216; &#8216; IN NOME_COMPLETO) <a href="http://www.ericksasse.com.br/extrair-primeiro-nome-usando-sql/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Você tem um campo string onde guarda o nome completo e precisa escrever uma consulta que traga apenas o primeiro nome.</p>
<p>Eu cheguei ao resultado abaixo, não conseguindo uma consulta que funcionasse ao mesmo tempo com Firebird e SQL Server.</p>
<p><strong>Firebird</strong></p>
<p><code>SELECT </code><span style="font-family: monospace;">IIF(POSITION(&#8216; &#8216; IN NOME_COMPLETO) &gt; 0, SUBSTRING(NOME_COMPLETO FROM 1 FOR POSITION(&#8216; &#8216; IN NOME_COMPLETO) &#8211; 1), NOME_COMPLETO) </span><span style="font-family: monospace;">FROM TABELA</span></p>
<p><strong>SQL Server</strong></p>
<p><code>SELECT CASE WHEN CHARINDEX(' ', NOME_COMPLETO) &gt; 0 THEN SUBSTRING(NOME_COMPLETO, 1, CHARINDEX(' ', NOME_COMPLETO) - 1) ELSE NOME_COMPLETO END FROM TABELA</code></p>
<p>Qualquer idéia melhor é bem-vinda.</p>
<p>UPDATE: Baseado no feedback recebido, refatorei a consulta, <a href="http://www.ericksasse.com.br/extrair-primeiro-nome-usando-sql-v2-0/">veja aqui a versão 2</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/extrair-primeiro-nome-usando-sql/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Microsoft Web Platform Installer</title>
		<link>http://www.ericksasse.com.br/microsoft-web-platform-installer/</link>
		<comments>http://www.ericksasse.com.br/microsoft-web-platform-installer/#comments</comments>
		<pubDate>Tue, 11 May 2010 16:56:38 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows Server]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=991</guid>
		<description><![CDATA[A maioria que trabalha com a plataforma de desenvolvimento da Microsoft já deve conhecer, mas o Web Platform Installer tem me sido tão útil que acho que nunca é demais espalhar a dica. Basta acessar www.microsoft.com/web, baixar o executável de 2MB, selecionar o que deseja instalar e pronto.  Ele baixa tudo da Internet e instala sem <a href="http://www.ericksasse.com.br/microsoft-web-platform-installer/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A maioria que trabalha com a plataforma de desenvolvimento da Microsoft já deve conhecer, mas o Web Platform Installer tem me sido tão útil que acho que nunca é demais espalhar a dica.</p>
<p>Basta acessar <a href="http://www.microsoft.com/web/">www.microsoft.com/web</a>, baixar o executável de 2MB, selecionar o que deseja instalar e pronto.  Ele baixa tudo da Internet e instala sem perguntar praticamente nada.</p>
<p>IIS, .NET Framework, Visual Studio, SQL Server, <a href="http://www.microsoft.com/web/gallery/">vários aplicativos</a>, incluindo alguns em PHP (WordPress, Joomla) já deixando o IIS configurado para rodá-los.</p>
<p>Ainda não baixou o Visual Studio 2010 Express? Baixe por ele, muito mais fácil.</p>
<p>Enfim, acho que é uma ferramenta que todos os desenvolvedores deveriam conhecer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/microsoft-web-platform-installer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Backup SQL Server Express via linha de comando</title>
		<link>http://www.ericksasse.com.br/backup-sql-server-express-via-linha-de-comando/</link>
		<comments>http://www.ericksasse.com.br/backup-sql-server-express-via-linha-de-comando/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 22:19:11 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Backup]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=886</guid>
		<description><![CDATA[Uma das desvantagens das versões Express do SQL Server é não ter o SQL Agent, que te permite agendar backups e outras tarefas administrativas nos seus bancos de dados. No caso do backup, você pode facilmente automatizar usando o agendador de tarefas e um arquivo .bat com os comandos abaixo, que já inclui a compactação <a href="http://www.ericksasse.com.br/backup-sql-server-express-via-linha-de-comando/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Uma das desvantagens das versões Express do SQL Server é não ter o SQL Agent, que te permite agendar backups e outras tarefas administrativas nos seus bancos de dados.</p>
<p>No caso do backup, você pode facilmente automatizar usando o agendador de tarefas e um arquivo .bat com os comandos abaixo, que já inclui a compactação usando <a href="http://www.7-zip.org">7-Zip</a>:</p>
<p><code>sqlcmd.exe -S (local)\SQLExpress -Q "BACKUP DATABASE MeuBanco TO DISK='d:\backup\meubanco.bak' WITH FORMAT"<br /> </code></p>
<p><code>"c:\program files\7-zip\7z.exe" a d:\backup\meubanco.7z d:\backup\meubanco.bak</code></p>
<p>É uma dica simples, mas que pode ser usada como ponto de partida para um script mais avançado e que atenda outras necessidades. Afinal, todo mundo precisa agendar backups de uma forma ou de outra.</p>
<p>E não esqueça de manter o backup bem longe do servidor. <img src='http://www.ericksasse.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.flickr.com/photos/roadhunter/68017710/"><img src="http://farm1.static.flickr.com/35/68017710_123de4638c_m.jpg" alt="Não deixe para amanhã" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/backup-sql-server-express-via-linha-de-comando/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Como desabilitar rapidamente constraints e triggers de um banco SQL Server</title>
		<link>http://www.ericksasse.com.br/como-desabilitar-rapidamente-constraints-e-triggers-de-um-banco-sql-server/</link>
		<comments>http://www.ericksasse.com.br/como-desabilitar-rapidamente-constraints-e-triggers-de-um-banco-sql-server/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 22:36:21 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=876</guid>
		<description><![CDATA[Quando se está importando dados para um banco, as constraints e triggers podem ser um chato obstáculo. Em alguns casos poder ser muito mais fácil desabilitar tudo e reativar no final do processo. Pesquisando sobre isso, encontrei essa ótima dica no StackOverflow. Para desabilitar todas as constraints e triggers de todas as tabelas do banco: <a href="http://www.ericksasse.com.br/como-desabilitar-rapidamente-constraints-e-triggers-de-um-banco-sql-server/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Quando se está importando dados para um banco, as constraints e triggers podem ser um chato obstáculo. Em alguns casos poder ser muito mais fácil desabilitar tudo e reativar no final do processo. Pesquisando sobre isso, encontrei essa <a href="http://stackoverflow.com/questions/123558/sql-server-2005-t-sql-to-temporarily-disable-a-trigger/123966#123966">ótima dica</a> no StackOverflow.</p>
<p><strong>Para desabilitar todas as constraints e triggers de todas as tabelas do banco:</strong></p>
<p><code>exec sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT ALL"<br />
exec sp_msforeachtable "ALTER TABLE ? DISABLE TRIGGER ALL"</code></p>
<p><strong>Para habilitar:</strong></p>
<p><code>exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL"<br />
exec sp_msforeachtable "ALTER TABLE ? ENABLE TRIGGER ALL"</code></p>
<p>Alias, essa <strong>sp_msforeachtable</strong> é muito interessante e pode ser explorada de muitas formas diferentes. Testei no SQL Server 2008, mas deve funcionar no 2005 pelo menos.</p>
<p>Um detalhe a ser observado é que esse comando não desabilita constraint de PK nem UNIQUE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/como-desabilitar-rapidamente-constraints-e-triggers-de-um-banco-sql-server/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 Express e a dependência do .NET 2.0 SP2</title>
		<link>http://www.ericksasse.com.br/sql-server-2008-express-e-a-dependencia-do-net-20-sp2/</link>
		<comments>http://www.ericksasse.com.br/sql-server-2008-express-e-a-dependencia-do-net-20-sp2/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 11:43:23 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=783</guid>
		<description><![CDATA[Hoje tentei instalar o SQL Server 2008 Express em um servidor Windows 2008. Logo no início da instalação ele já para e dá o seguinte erro: SQL Server 2008 Setup requires Microsoft .NET Framework 2.0 SP2 to be installed. Lá fui eu a procura do tal .NET 2.0 SP2. Depois de algum tempo, percebi que <a href="http://www.ericksasse.com.br/sql-server-2008-express-e-a-dependencia-do-net-20-sp2/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hoje tentei instalar o SQL Server 2008 Express em um servidor Windows 2008.  Logo no início da instalação ele já para e dá o seguinte erro:</p>
<p>SQL Server 2008 Setup requires Microsoft .NET Framework 2.0 SP2 to be  installed.</p>
<p><span style="text-decoration: underline;"><a href="http://www.ericksasse.com.br/wp-content/uploads/2008/09/image_2.png"><img class="alignnone size-full wp-image-784" title="sql2008_net20sp2" src="http://www.ericksasse.com.br/wp-content/uploads/2008/09/image_2.png" alt="" width="487" height="202" /></a></span></p>
<p>Lá fui eu a procura do tal .NET 2.0 SP2. Depois de algum tempo, percebi que  não existe download do tal .NET 2.0 SP2. Achei estranho e comecei a pesquisar  até encontrar <a href="http://blogs.msdn.com/psssql/archive/2008/08/28/sql-server-2008-express-net-framework-2-0-sp2-and-3-5-sp1-explained.aspx">esse  post</a> que explica a pegadinha.</p>
<p>Na verdade você deve baixar o <a href="http://go.microsoft.com/fwlink/?LinkId=120550">.NET Framework 3.5 SP1</a>, que já contém o .NET  Framework 2.0 SP2. <img src='http://www.ericksasse.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/sql-server-2008-express-e-a-dependencia-do-net-20-sp2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

