<?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>Tiago Salgado &#187; sql server 2008</title>
	<atom:link href="http://blog.tiagosalgado.com/tag/sql-server-2008/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tiagosalgado.com</link>
	<description>personal blog</description>
	<lastBuildDate>Sat, 21 Jan 2012 15:20:38 +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>T-SQL: CSV para Linhas (UDF e XML)</title>
		<link>http://blog.tiagosalgado.com/2010/04/10/t-sql-csv-para-linhas-udf-e-xml/</link>
		<comments>http://blog.tiagosalgado.com/2010/04/10/t-sql-csv-para-linhas-udf-e-xml/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 17:19:57 +0000</pubDate>
		<dc:creator>Tiago Salgado</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server 2008]]></category>

		<guid isPermaLink="false">http://blog.tiagosalgado.com/t-sql-comma-separated-values-para-linhas-udf-e-xml/</guid>
		<description><![CDATA[Esta semana precisei de fazer exactamente o que o titulo do post indica, ou seja, retornar todas as linhas de uma tabela mas ao mesmo tempo separar os valores numa das colunas em cada linha. Para testar, criei a seguinte tabela: CREATE TABLE [dbo].[Agentes]( [Codigo] [varchar](50) NULL, [Nome] [varchar](50) NULL, [Emails] [varchar](100) NULL ) Inseri]]></description>
			<content:encoded><![CDATA[<p>Esta semana precisei de fazer exactamente o que o titulo do post indica, ou seja, retornar todas as linhas de uma tabela mas ao mesmo tempo separar os valores numa das colunas em cada linha.</p>
<p>Para testar, criei a seguinte tabela:</p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">CREATE</span> <span class="kwrd">TABLE</span> [dbo].[Agentes](</pre>
<pre>    [Codigo] [<span class="kwrd">varchar</span>](50) <span class="kwrd">NULL</span>,</pre>
<pre class="alt">    [Nome] [<span class="kwrd">varchar</span>](50) <span class="kwrd">NULL</span>,</pre>
<pre>    [Emails] [<span class="kwrd">varchar</span>](100) <span class="kwrd">NULL</span></pre>
<pre class="alt">) </pre>
</div>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
</p>
<p>Inseri alguns dados com o mesmo formato da tabela real que iria depois utilizar:</p>
<div class="csharpcode">
<pre class="alt">INSERT <span class="kwrd">INTO</span> Agentes </pre>
<pre><span class="kwrd">VALUES</span>(<span class="str">'C12345'</span>,<span class="str">'Agente 1'</span>,<span class="str">'agente1@xpto.pt;agente1.loja@xpto.pt'</span>)</pre>
<pre>INSERT <span class="kwrd">INTO</span> Agentes </pre>
<pre><span class="kwrd">VALUES</span>(<span class="str">'C12346'</span>,<span class="str">'Agente 2'</span>,<span class="str">'agente2@xpto.pt;agente2.loja@xpto.pt'</span>)</pre>
</div>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Como já podem perceber, o campo “Emails” precisa de ser retornado com apenas um email, ou seja, preciso de passar uma listagem como esta</p>
<p><img src="http://img256.imageshack.us/img256/1892/select1.png" width="362" height="66" /></p>
<p>para uma como esta</p>
<p><img src="http://img256.imageshack.us/img256/3897/select2c.png" width="267" height="98" /></p>
<p>Para isso precisei de fazer uma função que me separasse cada um emails de forma a poder retornar um por cada linha.</p>
<div class="csharpcode">
<pre class="alt">

<span class="kwrd">CREATE</span> <span class="kwrd">FUNCTION</span> dbo.SplitEmails(@separador <span class="kwrd">char</span>(1), @emails <span class="kwrd">varchar</span>(512))
</pre>
<pre><span class="kwrd">RETURNS</span> <span class="kwrd">table</span></pre>
<pre class="alt"><span class="kwrd">AS</span></pre>
<pre><span class="kwrd">RETURN</span> (</pre>
<pre class="alt">    <span class="kwrd">WITH</span> Emails(pn, <span class="kwrd">start</span>, stop) <span class="kwrd">AS</span> (</pre>
<pre>      <span class="kwrd">SELECT</span> 1, 1, CHARINDEX(@separador, @emails)</pre>
<pre class="alt">      <span class="kwrd">UNION</span> <span class="kwrd">ALL</span></pre>
<pre>      <span class="kwrd">SELECT</span> pn + 1, stop + 1, CHARINDEX(@separador, @emails, </pre>
<pre>stop + 1)</pre>
<pre class="alt">      <span class="kwrd">FROM</span> Emails</pre>
<pre>      <span class="kwrd">WHERE</span> stop &gt; 0</pre>
<pre class="alt">    )</pre>
<pre>    <span class="kwrd">SELECT</span> <span class="kwrd">SUBSTRING</span>(@emails, <span class="kwrd">start</span>, <span class="kwrd">CASE</span> <span class="kwrd">WHEN</span> stop &gt; 0 <span class="kwrd">THEN</span> </pre>
<pre>stop-<span class="kwrd">start</span> <span class="kwrd">ELSE</span> 512 <span class="kwrd">END</span>) <span class="kwrd">AS</span> email</pre>
<pre class="alt">    <span class="kwrd">FROM</span> Emails</pre>
<pre>  )</pre>
</div>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>
  <br />Por fim, para ter a listagem com o formato pretendido, bastou fazer o CROSS APPLY com a minha tabela de agentes, e está o trabalho feito.</p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">SELECT</span> a.Codigo,a.Nome,c.email <span class="kwrd">FROM</span> Agentes a</pre>
<pre><span class="kwrd">CROSS</span> APPLY SplitEmails(<span class="str">';'</span>,a.Emails) c</pre>
</div>
<p><img src="http://img406.imageshack.us/img406/6914/select3.png" width="271" height="110" /></p>
<p>Outra forma de retornar esta listagem, indicada pelo <a href="http://twitter.com/CaioProiete" target="_blank">@Caio</a>, era recorrendo ao XML e evitava assim criar uma função para fazer o split dos emails.</p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">WITH</span> Consulta <span class="kwrd">AS</span></pre>
<pre>(</pre>
<pre class="alt"><span class="kwrd">SELECT</span> Codigo, Nome,</pre>
<pre><span class="kwrd">CAST</span>(<span class="str">'&lt;email&gt;'</span> + </pre>
<pre>REPLACE(Emails, <span class="str">';'</span>, <span class="str">'&lt;/email&gt;&lt;email&gt;'</span>) + </pre>
<pre><span class="str">'&lt;/email&gt;'</span> <span class="kwrd">AS</span> XML) </pre>
<pre><span class="kwrd">AS</span> EmailXml</pre>
<pre class="alt"><span class="kwrd">FROM</span> Agentes</pre>
<pre>)</pre>
<pre class="alt">&#160;</pre>
<pre><span class="kwrd">SELECT</span> Codigo, Nome,</pre>
<pre class="alt">    r.<span class="kwrd">value</span>(<span class="str">'.'</span>, <span class="str">'varchar(255)'</span>) <span class="kwrd">AS</span> Email</pre>
<pre><span class="kwrd">FROM</span></pre>
<pre class="alt">    Consulta</pre>
<pre><span class="kwrd">CROSS</span> APPLY</pre>
<pre class="alt">    consulta.EmailXml.nodes(<span class="str">'email'</span>) <span class="kwrd">AS</span> x(r)</pre>
</div>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiagosalgado.com/2010/04/10/t-sql-csv-para-linhas-udf-e-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free SQL Server 2008 Express How-To-Guide Series</title>
		<link>http://blog.tiagosalgado.com/2009/10/01/free-sql-server-2008-express-how-to-guide-series/</link>
		<comments>http://blog.tiagosalgado.com/2009/10/01/free-sql-server-2008-express-how-to-guide-series/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 13:09:35 +0000</pubDate>
		<dc:creator>Tiago Salgado</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[sql server 2008]]></category>

		<guid isPermaLink="false">http://blog.tiagosalgado.com/?p=489</guid>
		<description><![CDATA[Estão disponiveis no msdev.com, uma série de videos sobre SQL Server 2008 Express abordando temas dos mais básicos aos mais avançados como por exemplo: How do I backup a remote SQL Express database? How do I import data from another source (Excel, Access, XML, MySQL, &#8230;) into a SQL Server Database? SQL Server Integration Services]]></description>
			<content:encoded><![CDATA[<p>Estão disponiveis no <a href="http://msdev.com" target="_blank">msdev.com</a>, uma série de videos sobre SQL Server 2008 Express abordando temas dos mais básicos aos mais avançados como por exemplo:</p>
<ul>
<li> How do I backup a remote SQL Express database?</li>
<li>How do I import data from another source (Excel, Access, XML, MySQL, &#8230;) into a SQL Server Database?</li>
<li> SQL Server Integration Services Overview</li>
<li>etc &#8230;</li>
</ul>
<p>Podem ver todos os videos disponiveis em <a href="http://msdev.com/Directory/SeriesDescription.aspx?CourseId=124" target="_blank">http://msdev.com/Directory/SeriesDescription.aspx?CourseId=124</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiagosalgado.com/2009/10/01/free-sql-server-2008-express-how-to-guide-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 Deep Dive</title>
		<link>http://blog.tiagosalgado.com/2009/08/12/sql-server-2008-deep-dive/</link>
		<comments>http://blog.tiagosalgado.com/2009/08/12/sql-server-2008-deep-dive/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 12:59:53 +0000</pubDate>
		<dc:creator>Tiago Salgado</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[sql server 2008]]></category>

		<guid isPermaLink="false">http://blog.tiagosalgado.com/?p=450</guid>
		<description><![CDATA[Vai-se realizar dia 10 e 15 de Setembro, em Lisboa e no Porto respectivamente, um evento que aborda principalmente as novas funcionalidades presentes no SQL Server 2008. Resource Governor, Partitioning, Auditing, X-Events são alguns dos temas que irão ser abordados neste evento, mas o programa completo pode ser visto aqui. Podem fazer a inscrição nos]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://oito.files.wordpress.com/2009/08/image0011.jpg"><img class="aligncenter size-full wp-image-449" title="sqlserver2k8deepdive" src="http://oito.files.wordpress.com/2009/08/image0011.jpg" alt="sqlserver2k8deepdive" width="590" height="168" /></a></p>
<p style="text-align:left;">Vai-se realizar dia 10 e 15 de Setembro, em Lisboa e no Porto respectivamente, um evento que aborda principalmente as novas funcionalidades presentes no SQL Server 2008.</p>
<p style="text-align:left;">Resource Governor, Partitioning, Auditing, X-Events são alguns dos temas que irão ser abordados neste evento, mas o programa completo pode ser visto <a href="http://www.microsoft.com/portugal/sqlserver2008deepdive/default.mspx" target="_blank">aqui</a>.</p>
<p style="text-align:left;">Podem fazer a inscrição nos seguintes links:</p>
<p style="text-align:left;"><a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032423084&amp;Culture=pt-PT" target="_blank">Lisboa</a> &#8211; 10 de Setembro no Auditório Microsoft (TagusPark)</p>
<p style="text-align:left;"><a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032423086&amp;Culture=pt-PT" target="_blank">Porto</a> &#8211; 15 de Setembro na Fundação Dr. António Cupertino de Miranda</p>
<p style="text-align:left;"><a href="http://www.microsoft.com/portugal/sqlserver2008deepdive/default.mspx" target="_blank">Programa do Evento</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiagosalgado.com/2009/08/12/sql-server-2008-deep-dive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 Resource Governor</title>
		<link>http://blog.tiagosalgado.com/2009/07/21/sql-server-2008-resource-governor/</link>
		<comments>http://blog.tiagosalgado.com/2009/07/21/sql-server-2008-resource-governor/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 12:24:32 +0000</pubDate>
		<dc:creator>Tiago Salgado</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[resource governor]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[sql server 2008]]></category>

		<guid isPermaLink="false">http://blog.tiagosalgado.com/?p=437</guid>
		<description><![CDATA[O Resource Governor é uma funcionalidade adicionado ao SQL Server 2008 que permite-nos gerir a carga e os recursos que irão ser usados em determinada base de dados. Muitas vezes, devido a querys mal construidas ou até mesmo por se tratar de operações bastante pesadas, pretendiamos que apenas utiliza-se uma percentagem dos recursos do servidor]]></description>
			<content:encoded><![CDATA[<p><a href="http://oito.files.wordpress.com/2009/07/ee151608-image001en-us1.gif"><img class="aligncenter size-full wp-image-438" title="sql_server_2008_logo" src="http://oito.files.wordpress.com/2009/07/ee151608-image001en-us1.gif" alt="sql_server_2008_logo" width="363" height="75" /></a></p>
<p>O Resource Governor é uma funcionalidade adicionado ao SQL Server 2008 que permite-nos gerir a carga e os recursos que irão ser usados em determinada base de dados.</p>
<p>Muitas vezes, devido a querys mal construidas ou até mesmo por se tratar de operações bastante pesadas, pretendiamos que apenas utiliza-se uma percentagem dos recursos do servidor e deixasse os restantes recursos para outras operações que fossem solicitadas.</p>
<p>Esta funcionalidade veio resolver isto mesmo, ou seja, podemos agora definir que determinada operação irá apenas usar X% dos recursos e até mesmo indicar quais serão as querys prioritárias.</p>
<p>Para perceberem melhor como funciona e como configurar, deixo os seguintes links:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb934084.aspx" target="_blank">Resource Governor Concepts</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb933866.aspx" target="_blank">Managing SQL Server Workloads with Resource Governor</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/ee151608.aspx" target="_blank">Using Resource Governor</a> (<a href="http://download.microsoft.com/download/D/B/D/DBDE7972-1EB9-470A-BA18-58849DB3EB3B/ResourceGov.docx" target="_blank">download white-paper</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiagosalgado.com/2009/07/21/sql-server-2008-resource-governor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alterar a estrutura de um UserDefinedTable Type no SQL Server 2008</title>
		<link>http://blog.tiagosalgado.com/2009/07/08/alterar-a-estrutura-de-um-userdefinedtable-type-no-sql-server-2008/</link>
		<comments>http://blog.tiagosalgado.com/2009/07/08/alterar-a-estrutura-de-um-userdefinedtable-type-no-sql-server-2008/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 13:19:09 +0000</pubDate>
		<dc:creator>Tiago Salgado</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[sql server 2008]]></category>

		<guid isPermaLink="false">http://blog.tiagosalgado.com/?p=426</guid>
		<description><![CDATA[Uma das novidades do SQL Server 2008, foi o aparecimento do UserDefinedTable Type, permitindo assim criar uma estrutura de uma tabela e usa-la como um table-value parameter. Num projecto em que estou a trabalhar actualmente utilizo este tipo de dados e precisei de o alterar após já o ter referenciado num stored procedure. Como está]]></description>
			<content:encoded><![CDATA[<p>Uma das novidades do SQL Server 2008, foi o aparecimento do <a href="http://technet.microsoft.com/en-us/library/bb522526.aspx" target="_blank">UserDefinedTable Type</a>, permitindo assim criar uma estrutura de uma tabela e usa-la como um table-value parameter.</p>
<p>Num projecto em que estou a trabalhar actualmente utilizo este tipo de dados e precisei de o alterar após já o ter referenciado num stored procedure. Como está bem explicito <a href="http://technet.microsoft.com/en-us/library/bb522526.aspx" target="_blank">aqui</a>, não podemos alterar a estrutura do tipo de dados após te-lo criado.</p>
<blockquote><p>The user-defined table type definition cannot be modified after it is  created.</p></blockquote>
<p>Para o fazer, teremos que remover e criar novamente o nosso tipo com as alterações pretendidas. Extra-trabalho quando já o temos referenciado, pois como seria de esperar não deixa antes de removermos essas mesmas referências.</p>
<p>Para contornar o problema segui os seguintes passos:</p>
<ol>
<li>Criar uma novo tipo igual ao que pretendo remover com um novo nome</li>
<li>Alterar para o novo nome todas as referências do que pretendemos alterar</li>
<li>Remover o tipo que existia inicialmente</li>
<li>Criar o novo com as alterações pretendidas e voltar a substituir todas as referências</li>
<li>Remover o tipo criado no ponto 1.</li>
</ol>
<p>Não me parece a melhor solução para este problema, mas para já é que se arranja.</p>
<p>Se existir uma melhor agradeço que me digam. <img src='http://blog.tiagosalgado.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiagosalgado.com/2009/07/08/alterar-a-estrutura-de-um-userdefinedtable-type-no-sql-server-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSMS 2008 + Alterar nr de registos a retornar nas opções SELECT e EDIT do menu de contexto da tabela</title>
		<link>http://blog.tiagosalgado.com/2009/05/28/ssms-2008-alterar-nr-de-registos-a-retornar-nas-opes-select-e-edit-do-menu-de-contexto-da-tabela/</link>
		<comments>http://blog.tiagosalgado.com/2009/05/28/ssms-2008-alterar-nr-de-registos-a-retornar-nas-opes-select-e-edit-do-menu-de-contexto-da-tabela/#comments</comments>
		<pubDate>Thu, 28 May 2009 22:48:35 +0000</pubDate>
		<dc:creator>Tiago Salgado</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[sql server 2008]]></category>

		<guid isPermaLink="false">http://blog.tiagosalgado.com/2009/05/28/ssms-2008-alterar-nr-de-registos-a-retornar-nas-opes-select-e-edit-do-menu-de-contexto-da-tabela/</guid>
		<description><![CDATA[Na ultima versão do SQL Server Management Studio (SSMS), ao abrirmos o menu de contexto de uma tabela na nossa base de dados, as opções de SELECT e EDIT têm um limite de registos que irão ser retornados definido por defeito, 1000 e 200 respectivamente. Isto faz com que sempre que quisermos retornar os resultados]]></description>
			<content:encoded><![CDATA[<p>Na ultima versão do SQL Server Management Studio (SSMS), ao abrirmos o menu de contexto de uma tabela na nossa base de dados, as opções de SELECT e EDIT têm um limite de registos que irão ser retornados definido por defeito, 1000 e 200 respectivamente.</p>
<p><a href="http://oito.files.wordpress.com/2009/05/sql_server_2k8_select_edit_rows_limits.jpg" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="sql_server_2k8_select_edit_rows_limits" border="0" alt="sql_server_2k8_select_edit_rows_limits" src="http://oito.files.wordpress.com/2009/05/sql_server_2k8_select_edit_rows_limits_thumb.jpg" width="777" height="696" /></a> </p>
<p>Isto faz com que sempre que quisermos retornar os resultados de uma tabela com mais de 200 (EDIT) e 1000 (SELECT), temos que ir à query gerada e retirar/alterar o “TOP N”.</p>
<p>Se para nós estes valores não são suficientes e queremos alterá-los, ou até mesmo ignora-los e retornarmos todos os registos da tabela, podemos fazê-lo no menu <strong>Tools &gt; Options &gt; SQL Server Object Explorer &gt; Commands</strong> e alterar os valores lá definidos ou simplesmente atribuir o valor 0 (zero) fazendo com que não seja incluida a expressão TOP N.</p>
<p><a href="http://oito.files.wordpress.com/2009/05/image7.png" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://oito.files.wordpress.com/2009/05/image_thumb6.png" width="747" height="428" /></a> </p>
<p>Após esta alteração, já podem usar ambas opções com os novos valores definidos.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiagosalgado.com/2009/05/28/ssms-2008-alterar-nr-de-registos-a-retornar-nas-opes-select-e-edit-do-menu-de-contexto-da-tabela/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualizar a cache do Intellisence do SQL Server 2008</title>
		<link>http://blog.tiagosalgado.com/2009/05/13/actualizar-a-cache-do-intellisence-do-sql-server-2008/</link>
		<comments>http://blog.tiagosalgado.com/2009/05/13/actualizar-a-cache-do-intellisence-do-sql-server-2008/#comments</comments>
		<pubDate>Wed, 13 May 2009 20:40:36 +0000</pubDate>
		<dc:creator>Tiago Salgado</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[sql server 2008]]></category>
		<category><![CDATA[sql server 2008 intellisence]]></category>

		<guid isPermaLink="false">http://blog.tiagosalgado.com/2009/05/13/actualizar-a-cache-do-intellisence-do-sql-server-2008/</guid>
		<description><![CDATA[No SQL Server 2008, quando criamos uma nova tabela, um Stored Procedure, etc … o Intellisence (no SQL Server Management Studio) não fica de imediato actualizado para acedermos rapidamente a esse objecto que criamos. Para resolver isso, podemos actualizar a cache do Intellisence usando uma das duas formas: Menu Edit &#62; Intellisence &#62; Refresh Local]]></description>
			<content:encoded><![CDATA[<p>No <a href="http://www.microsoft.com/sqlserver/2008/en/us/default.aspx" target="_blank">SQL Server 2008</a>, quando criamos uma nova tabela, um Stored Procedure, etc … o Intellisence (no SQL Server Management Studio) não fica de imediato actualizado para acedermos rapidamente a esse objecto que criamos.</p>
<p>Para resolver isso, podemos actualizar a cache do Intellisence usando uma das duas formas:</p>
<ol>
<li>Menu Edit &gt; Intellisence &gt; Refresh Local Cache</li>
<li>Pelo atalho CTRL + SHIFT + R</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiagosalgado.com/2009/05/13/actualizar-a-cache-do-intellisence-do-sql-server-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 SP1 disponivel</title>
		<link>http://blog.tiagosalgado.com/2009/04/12/sql-server-2008-sp1-disponivel/</link>
		<comments>http://blog.tiagosalgado.com/2009/04/12/sql-server-2008-sp1-disponivel/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 17:49:19 +0000</pubDate>
		<dc:creator>Tiago Salgado</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[sql server 2008]]></category>

		<guid isPermaLink="false">http://blog.tiagosalgado.com/2009/04/12/sql-server-2008-sp1-disponivel/</guid>
		<description><![CDATA[Está disponível para download o SP1 para o SQL Server 2008. Download]]></description>
			<content:encoded><![CDATA[<p>Está disponível para download o SP1 para o <a href="http://www.microsoft.com/sqlserver/2008/en/us/default.aspx" target="_blank">SQL Server 2008</a>.</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19" target="_blank">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiagosalgado.com/2009/04/12/sql-server-2008-sp1-disponivel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008 – erro ao alterar a estrutura de uma tabela</title>
		<link>http://blog.tiagosalgado.com/2008/11/09/sql-server-2008-erro-ao-alterar-a-estrutura-de-uma-tabela/</link>
		<comments>http://blog.tiagosalgado.com/2008/11/09/sql-server-2008-erro-ao-alterar-a-estrutura-de-uma-tabela/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 00:41:49 +0000</pubDate>
		<dc:creator>Tiago Salgado</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[sql server 2008]]></category>

		<guid isPermaLink="false">http://blog.tiagosalgado.com/2008/11/09/sql-server-2008-erro-ao-alterar-a-estrutura-de-uma-tabela/</guid>
		<description><![CDATA[Ao tentar alterar o tipo de dados de uma coluna, surgiu-me um erro ao tentar gravar estas alterações, não me permitindo fazer o que pretendia. Para contornar isto, temos que desactivar a opção “Prevent saving changes that require table re-creation”. Para isso vao ao menu Tools &#62; Options &#62; Designers &#62; Table and Database Designers]]></description>
			<content:encoded><![CDATA[<p>Ao tentar alterar o tipo de dados de uma coluna, surgiu-me um erro ao tentar gravar estas alterações, não me permitindo fazer o que pretendia.</p>
<p><a href="http://oito.files.wordpress.com/2008/11/sql2k8-savedialogwarnig.jpg"><img title="sql2k8_savedialogwarnig" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" height="194" alt="sql2k8_savedialogwarnig" src="http://oito.files.wordpress.com/2008/11/sql2k8-savedialogwarnig-thumb.jpg" width="244" border="0" /></a> </p>
<p>Para contornar isto, temos que desactivar a opção “Prevent saving changes that require table re-creation”.</p>
<p>Para isso vao ao menu Tools &gt; Options &gt; Designers &gt; Table and Database Designers e desmarcam essa opção.</p>
<p><a href="http://oito.files.wordpress.com/2008/11/sql2k8-optionsdialog.jpg"><img title="sql2k8_optionsdialog" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" height="371" alt="sql2k8_optionsdialog" src="http://oito.files.wordpress.com/2008/11/sql2k8-optionsdialog-thumb.jpg" width="644" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiagosalgado.com/2008/11/09/sql-server-2008-erro-ao-alterar-a-estrutura-de-uma-tabela/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

