<?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>PortalSQL &#187; AntiCursores</title>
	<atom:link href="http://portalsql.com/index.php/category/anticursores/feed/" rel="self" type="application/rss+xml" />
	<link>http://portalsql.com</link>
	<description>Compartiendo conocimiento SQL</description>
	<lastBuildDate>Sun, 18 Jul 2010 18:53:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Scripts curiosos, para construir otros scripts</title>
		<link>http://portalsql.com/index.php/2010/02/scripts-curiosos-para-construir-otros-scripts/</link>
		<comments>http://portalsql.com/index.php/2010/02/scripts-curiosos-para-construir-otros-scripts/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 12:36:40 +0000</pubDate>
		<dc:creator>Miguel Egea</dc:creator>
				<category><![CDATA[AntiCursores]]></category>
		<category><![CDATA[Relacional]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=161</guid>
		<description><![CDATA[En algunas ocasiones tenemos que lanzar un query repetitivo para un monton de servidores o para un monton de tablas. Yo que soy bastante vago a la hora de hacer tareas repetitivas me he ido creando atajos y truquitos, que no son otra cosa. Os voy a poner un par de ejemplos que habréis de [...]]]></description>
			<content:encoded><![CDATA[<p>En algunas ocasiones tenemos que lanzar un query repetitivo para un monton de servidores o para un monton de tablas. Yo que soy bastante vago a la hora de hacer tareas repetitivas me he ido creando atajos y truquitos, que no son otra cosa. Os voy a poner un par de ejemplos que habréis de adaptar a vuestras necesidades.</p>
<p>El primero de los ejemplos muestra como ejecutar un script mediante SQL CMD para un conjunto de servidores. Primero suponemos que tenemos una tabla que contiene el nombre de esos servers, también supone que el usuario sa tiene el mismo password en todos, obviamente basta con sustituir sa por otro usuario que tenga permisos.<br />
Si estos usuarios están en una tabla también es facil de adaptar.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p161code4'); return false;">View Code</a> TSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1614"><td class="code" id="p161code4"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">use</span> tempdb
go
<span style="color: #0000FF;">create</span> <span style="color: #0000FF;">schema</span> tuesquema
go
<span style="color: #0000FF;">create</span> <span style="color: #0000FF;">table</span> tuesquema.<span style="color: #202020;">TuTablaConNombresDeServidor</span> <span style="color: #808080;">&#40;</span>server sysname<span style="color: #808080;">&#41;</span>
go
<span style="color: #0000FF;">insert</span> <span style="color: #0000FF;">into</span> tuesquema.<span style="color: #202020;">TuTablaConNombresDeServidor</span>  <span style="color: #0000FF;">values</span> <span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'127.0.0.1'</span><span style="color: #808080;">&#41;</span>,<span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'10.10.10.10<span style="color: #000099; font-weight: bold;">\i</span>nstancia'</span><span style="color: #808080;">&#41;</span>
go
<span style="color: #0000FF;">select</span> row_number<span style="color: #808080;">&#40;</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">over</span> <span style="color: #808080;">&#40;</span>partition <span style="color: #0000FF;">by</span> server <span style="color: #0000FF;">order</span> <span style="color: #0000FF;">by</span> orden<span style="color: #808080;">&#41;</span>,<span style="color: #808080;">*</span> 
	<span style="color: #0000FF;">from</span><span style="color: #808080;">&#40;</span>
		<span style="color: #0000FF;">select</span> <span style="color: #000;">0</span> orden,
			<span style="color: #FF0000;">':connect '</span><span style="color: #808080;">+</span> server <span style="color: #808080;">+</span> <span style="color: #FF0000;">' -U sa -P PasswordSA '</span> query,
				server 
		<span style="color: #0000FF;">from</span> tuesquema.<span style="color: #202020;">tutablaconNombresdeservidor</span> 
		<span style="color: #0000FF;">union</span> all
		<span style="color: #0000FF;">select</span>  <span style="color: #000;">1</span> orden,
			<span style="color: #FF0000;">'if 0=(select count(*) from master.sys.syslogins where name='</span><span style="color: #FF0000;">'tunuevousuario'</span><span style="color: #FF0000;">')'</span> query,
			server 
		<span style="color: #0000FF;">from</span> tuesquema.<span style="color: #202020;">tutablaconNombresdeservidor</span> 
		<span style="color: #0000FF;">union</span> all
		<span style="color: #0000FF;">select</span> <span style="color: #000;">2</span>, 
			<span style="color: #FF0000;">'begin'</span>,server 
		<span style="color: #0000FF;">from</span> tuesquema.<span style="color: #202020;">tutablaconNombresdeservidor</span> 
		<span style="color: #0000FF;">union</span> all
		<span style="color: #0000FF;">select</span> <span style="color: #000;">3</span>,
			<span style="color: #FF0000;">'  create login tunuevousuario with password='</span><span style="color: #FF0000;">'ElPassword'</span><span style="color: #FF0000;">';'</span>,
			server 
		<span style="color: #0000FF;">from</span> tuesquema.<span style="color: #202020;">tutablaconNombresdeservidor</span> 
		<span style="color: #0000FF;">union</span> all
		<span style="color: #0000FF;">select</span> <span style="color: #000;">4</span>,
			<span style="color: #FF0000;">'  exec sp_Addsrvrolemember '</span><span style="color: #FF0000;">'tunuevousuario'</span><span style="color: #FF0000;">','</span><span style="color: #FF0000;">'sysadmin'</span><span style="color: #FF0000;">';'</span>,
			server 
		<span style="color: #0000FF;">from</span> tuesquema.<span style="color: #202020;">tutablaconNombresdeservidor</span> 
		<span style="color: #0000FF;">union</span> all
		<span style="color: #0000FF;">select</span> <span style="color: #000;">5</span>,
			<span style="color: #FF0000;">' end'</span>,
			server 
		<span style="color: #0000FF;">from</span> tuesquema.<span style="color: #202020;">tutablaconNombresdeservidor</span> 
		<span style="color: #0000FF;">union</span> all
		<span style="color: #0000FF;">select</span> <span style="color: #000;">6</span>, 
				<span style="color: #FF0000;">'else'</span>,
				server 
		<span style="color: #0000FF;">from</span> tuesquema.<span style="color: #202020;">tutablaconNombresdeservidor</span> 
		<span style="color: #0000FF;">union</span> all
		<span style="color: #0000FF;">select</span> <span style="color: #000;">7</span>,
			<span style="color: #FF0000;">'  exec sp_password '</span><span style="color: #FF0000;">'tunuevousuario'</span><span style="color: #FF0000;">',@new='</span><span style="color: #FF0000;">'ElPassword'</span><span style="color: #FF0000;">';'</span>,
			server 
		<span style="color: #0000FF;">from</span> tuesquema.<span style="color: #202020;">tutablaconNombresdeservidor</span>
 <span style="color: #808080;">&#41;</span> a <span style="color: #0000FF;">where</span> not server <span style="color: #0000FF;">is</span> null <span style="color: #0000FF;">order</span> <span style="color: #0000FF;">by</span> <span style="color: #000;">4</span>,<span style="color: #000;">1</span></pre></td></tr></table></div>

<p>El resultado de la ejecución de este script será el que podeis ver a contiunación </p>
<p><a href="http://portalsql.com/wp-content/uploads/2010/02/resultado-primer-query.jpg"><img src="http://portalsql.com/wp-content/uploads/2010/02/resultado-primer-query-300x156.jpg" alt="" title="resultado primer query" width="300" height="156" class="alignnone size-medium wp-image-164" /></a></p>
<p>Lo que habremos de hacer luego es copiar el resultado query y pegarlo en una nueva ventana de consulta, despues habremos de ir a Query->SQLCMD mode, de esta forma aparecerá la parte de connect en gris, lo que quiere indicar que esa operación se lanzará no como TSQL sino como administración, realmente lo que hará será conectarse al servidor que hemos indicado. En modo SQL CMD hay muchos más comandos, pero no son el objeto de este artículo. El resultado hecho esto es el que podeis ver en la siguiente figura.</p>
<p><a href="http://portalsql.com/wp-content/uploads/2010/02/sqlcmdmode.jpg"><img src="http://portalsql.com/wp-content/uploads/2010/02/sqlcmdmode-300x146.jpg" alt="" title="sqlcmdmode" width="300" height="146" class="alignnone size-medium wp-image-165" /></a></p>
<p>El siguiente script servira para ejecutar un select count para cada una de las tablas en nuestro sistema.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p161code5'); return false;">View Code</a> TSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1615"><td class="code" id="p161code5"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">select</span> <span style="color: #FF0000;">'SELECT  '</span><span style="color: #FF0000;">'['</span><span style="color: #808080;">+</span>Table_schema<span style="color: #808080;">+</span><span style="color: #FF0000;">'].['</span><span style="color: #808080;">+</span>table_name<span style="color: #808080;">+</span><span style="color: #FF0000;">']'</span><span style="color: #FF0000;">' NombreDeTabla,count(*) FROM  ['</span>  <span style="color: #808080;">+</span>
		TABLE_SCHEMA <span style="color: #808080;">+</span><span style="color: #FF0000;">'].['</span> <span style="color: #808080;">+</span>TABLE_NAME <span style="color: #808080;">+</span><span style="color: #FF0000;">'] UNION ALL '</span> 
<span style="color: #0000FF;">FROM</span> <span style="color: #808080;">IN</span>F<span style="color: #808080;">OR</span>MATION_SCHEMA.<span style="color: #202020;">TABLES</span> <span style="color: #0000FF;">WHERE</span> TABLE_TYPE<span style="color: #808080;">=</span><span style="color: #FF0000;">'BASE TABLE'</span></pre></td></tr></table></div>

<p>El resultado de la ejecución de esta consulta será el que veis en la siguiente imagen.<br />
<a href="http://portalsql.com/wp-content/uploads/2010/02/countsobreaw.jpg"><img src="http://portalsql.com/wp-content/uploads/2010/02/countsobreaw-300x139.jpg" alt="" title="countsobreaw" width="300" height="139" class="alignnone size-medium wp-image-170" /></a><br />
Despues basta con copiar esta query a una nueva ventana, quitar el último union all y añadir una cláusula para la ordenación, en mi caso pondría order by 2 desc, de forma que se ordenaría de tabla con mayor numero de filas a menos. El resultado en AdventureWorks2008 será el que veis en la última imagen del artículo<br />
<a href="http://portalsql.com/wp-content/uploads/2010/02/RESULTADOSELECTCOUNT.jpg"><img src="http://portalsql.com/wp-content/uploads/2010/02/RESULTADOSELECTCOUNT-300x162.jpg" alt="" title="RESULTADOSELECTCOUNT" width="300" height="162" class="alignnone size-medium wp-image-171" /></a></p>
<p>Por útimo decir que este comando haría algo parecido (que no igual), es un comando indocumentado llamado sp_foreachtable que tiene su gracia</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p161code6'); return false;">View Code</a> TSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1616"><td class="code" id="p161code6"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">exec</span> SP_MSF<span style="color: #808080;">OR</span>EACHTABLE <span style="color: #FF0000;">'SELECT '</span><span style="color: #FF0000;">'?'</span><span style="color: #FF0000;">', COUNT(*) FROM ?'</span></pre></td></tr></table></div>

<p>Disfrutad del código </p>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2010/02/scripts-curiosos-para-construir-otros-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando funciones Recursivas CTE&#8217;s. para crear secuencias</title>
		<link>http://portalsql.com/index.php/2009/12/usando-funciones-recursivas-ctes-para-crear-secuencias/</link>
		<comments>http://portalsql.com/index.php/2009/12/usando-funciones-recursivas-ctes-para-crear-secuencias/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 12:02:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AntiCursores]]></category>
		<category><![CDATA[Relacional]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=13</guid>
		<description><![CDATA[Para distintas funcionalidades (os pondré algún ejemplo en los siguientes dias que vienen del gran Itzik )  es muy interesante tener una tabla con números del 1 al n, se pueden usar para convertir parámetros separados por comas en valores, se pueden usar para simular joins y duplicar filas, bueno, tienen un gran número de utilidades y [...]]]></description>
			<content:encoded><![CDATA[<p>Para distintas funcionalidades (os pondré algún ejemplo en los siguientes dias que vienen del gran Itzik )  es muy interesante tener una tabla con números del 1 al n, se pueden usar para convertir parámetros separados por comas en valores, se pueden usar para simular joins y duplicar filas, bueno, tienen un gran número de utilidades y funcionalidades.</p>
<p>Lo que os voy a contar hoy es como hacerlo sin recurrir a los cursores</p>
<p>Lo típico es utilizar una sentencia del tipo while para rellenar esos valores. Veamos un ejemplo</p>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">declare </span></span></span></span><span style="font-size: x-small;">@t </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">table </span></span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">(</span></span><span style="font-size: x-small;">id </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">int</span></span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">)</span></span></div>
<p><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">declare </span></span><span style="font-size: x-small;">@num </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">int</span></span></p>
<p> <span style="font-size: x-small;">set @num</span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">=0</span></span></p>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"> </span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">while </span></span></span></span><span style="font-size: x-small;">@num</span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">&lt;=</span></span><span style="font-size: x-small;">10000</span></div>
<p><span style="font-size: x-small;">  <span style="color: #0000ff;"><span style="color: #0000ff;">begin</span></span></span></p>
<p><span style="font-size: x-small;">       </span><span style="font-size: x-small;"><span style="color: #0000ff;"><span style="color: #0000ff;">insert</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">into</span></span> @t <span style="color: #0000ff;"><span style="color: #0000ff;">values </span></span><span style="color: #808080;"><span style="color: #808080;">(</span></span>@num<span style="color: #808080;"><span style="color: #808080;">)</span></span></span></p>
<p><span style="font-size: x-small;">      </span><span style="font-size: x-small;"><span style="color: #0000ff;"><span style="color: #0000ff;">set</span></span> @num<span style="color: #808080;"><span style="color: #808080;">=</span></span>@num<span style="color: #808080;"><span style="color: #808080;">+</span></span>1</span></p>
<p><span style="font-size: x-small;"><span style="color: #0000ff;"><span style="color: #0000ff;">end</span></span></span></p>
<p><span style="color: #0000ff;"><span style="color: #0000ff; font-size: x-small;">select </span></span><span style="font-size: x-small;"><span style="color: #808080;"><span style="color: #808080;">*</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">from</span></span> @t</span></p>
<p><span style="font-size: x-small;">Esto no deja de ser un cursor, y ya sabeis que soy de la opinión de que el único cursor bueno es el cursor muerto y me considero miembro activo de &#8220;la brigada anticursores&#8221;.   Antes de SQL 2005, no podía sin embargo matar este cursor excepto usando triquiñuelas que nada me gustaban y que probablemente eran peor que el propio cursor <img src='http://portalsql.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , sin embargo con las CTE&#8217;s son sencillos de eliminar. Las CTE&#8217;s permiten recursividad, es decir yo puedo basar el resultado de un query en el resultado del anterior, esta va a ser la idea, primero declararemos la cte con la cláusula with, luego pondremos la cláusula de inicio que será un siemple SELECT 0 as id, después usaremos la CTE para incrementar de 1 en uno y luego  pondremos la cláusula de salida de la recursividad ( en el where ), el resultado es el siguiente :</span></p>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">With </span></span></span></span><span style="font-size: x-small;">MiPrimeraCTE</span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"> </span></span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">(</span></span><span style="font-size: x-small;">id </span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">)</span></span></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">as</span></span></span></span></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"></span></span></span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">(</span></span><span style="font-size: x-small;"> </span></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">select</span></span><span style="font-size: x-small;"> 0 </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">as</span></span><span style="font-size: x-small;"> id</span></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">union</span></span><span style="font-size: x-small;"> </span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">all</span></span><span style="font-size: x-small;"> </span></div>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">select</span></span><span style="font-size: x-small;"> id</span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">+</span></span><span style="font-size: x-small;">1 </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">from</span></span><span style="font-size: x-small;"> MiPrimeraCTE </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">where</span></span><span style="font-size: x-small;"> Id </span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">&lt;</span></span><span style="font-size: x-small;"> 10000 </span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">)</span></span></div>
<div><span style="color: #808080; font-size: x-small;"></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">select</span></span><span style="font-size: x-small;"> </span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">*</span></span><span style="font-size: x-small;"> </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">from</span></span><span style="font-size: x-small;"> MiPrimeraCTE </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">option</span></span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">(</span></span><span style="font-size: x-small;">maxrecursion 0</span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">)</span></span></div>
<p> </p>
<p><span style="color: #808080; font-size: x-small;">La única curiosidad que nos queda por resolver es la última cláusula (option maxrecursion) eso es simplemente porque el limite de llamadas recursivas en SQL Server 2005 y 2008 está en 100, (en SQL 2000 estaba en 32), y hay que prevenirse de esa limitación para no obtener un error. Para ello usamos ese Query hint. En el proximo artículo lo usaremos con fechas que también funciona y bastante bien, y veremos un par de lugares en el que nos puede resultar útil.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2009/12/usando-funciones-recursivas-ctes-para-crear-secuencias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Propósito de enmienda..</title>
		<link>http://portalsql.com/index.php/2009/12/hello-world/</link>
		<comments>http://portalsql.com/index.php/2009/12/hello-world/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 21:24:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AntiCursores]]></category>

		<guid isPermaLink="false">http://portalsql.com/?p=1</guid>
		<description><![CDATA[Después de meses sin funcionar, gracias a los spammers,  que como todos sabemos tanto bien hacen a la red y a su contenido (Para ganar qué?&#8230; me pregunto yo) y Gracias a mi amigo Antonio Salinas, acabo de instalar la utilidad para hacer de Portalsql lo que seguramente quise siempre.. A ver si empiezo a [...]]]></description>
			<content:encoded><![CDATA[<p>Después de meses sin funcionar, gracias a los spammers,  que como todos sabemos tanto bien hacen a la red y a su contenido (Para ganar qué?&#8230; me pregunto yo) y Gracias a mi amigo Antonio Salinas, acabo de instalar la utilidad para hacer de Portalsql lo que seguramente quise siempre.. A ver si empiezo a recuperar todo el contenido y pronto estamos 100% operativos.</p>
]]></content:encoded>
			<wfw:commentRss>http://portalsql.com/index.php/2009/12/hello-world/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
