<?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>Gabriel Rodriguez Plancarte &#187; SQL</title>
	<atom:link href="http://gabrielrodriguez.net/category/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://gabrielrodriguez.net</link>
	<description>Tecnologia, Diseño, Negocios y Desarrollo</description>
	<lastBuildDate>Sat, 12 May 2012 01:41:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Links del dia #1</title>
		<link>http://gabrielrodriguez.net/links-del-dia-1/</link>
		<comments>http://gabrielrodriguez.net/links-del-dia-1/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 22:59:18 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Links del Dia]]></category>
		<category><![CDATA[Mejores Practicas]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=814</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/links-del-dia-1/' addthis:title='Links del dia #1 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Ya que de perdido paso 2 horas al día leyendo artículos técnicos sobre desarrollo de software o cosas relacionadas a sistemas, y durante los últimos 5 años la mayoría de lo que he aprendido ha sido en base a blog posts, he decido empezar una serie de posts recomendado uno o más artículo/posts que haya [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/links-del-dia-1/' addthis:title='Links del dia #1 ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/links-del-dia-1/' addthis:title='Links del dia #1 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Ya que de perdido paso 2 horas al día leyendo artículos técnicos sobre desarrollo de software o cosas relacionadas a sistemas, y durante los últimos 5 años la mayoría de lo que he aprendido ha sido en base a blog posts, he decido empezar una serie de posts recomendado uno o más artículo/posts que haya leído durante ese día, categorizados por tecnología o área.</p>
<p>No se si logre hacer esto diariamente, pero al menos el intento se hará. Aquí estan los primeros artículos interesantes que he leído el día de hoy:</p>
<p><strong>SQL</strong></p>
<p><a title="SQL - Introduction to JOINS - Basic of JOINS" href="http://blog.sqlauthority.com/2009/04/13/sql-server-introduction-to-joins-basic-of-joins/">Introduction to JOINS &#8211; Basic of JOINS</a>: Escrito por Pinal Dave, un experto de SQL. Mucha gente no sabe explicar los JOINS en SQL o la diferencia exacta entre ellos, buen artículo.</p>
<p><strong>Personal Improvement</strong></p>
<p><a title="Basic Presentation Skills Training - Notes from Joel Abrahamsson" href="http://joelabrahamsson.com/entry/notes-from-basic-presentation-skills-training">Basic Presentation Skills Training &#8211; Notes from Joel Abrahamsson</a>: Parte de mi rol de trabajo es dar algunas presentaciones técnicas, y la verdad es que la mayoría de la gente no somos buenos para esto. Buenas notas y tips de este desarrollador que está tomando un curso al respecto.</p>
<p><strong>.NET / C# / ASP.NET</strong></p>
<p><a title="The State of the ALT.NET Movement" href="http://codebetter.com/iancooper/2011/01/16/alt-next/">ALT.Next</a> &#8211; ALT.NET es un &#8220;movimiento&#8221; o &#8220;corriente&#8221; integrado por varios desarrolladores enfocados en traer las mejores prácticas y herramientas de otras comunidades de desarrollo (Java, Ruby, Python, etc) a la comunidad de Microsoft y .NET en general. Aunque su auge más fuerte ya pasó, este artículo da una idea de hacia donde van.</p>
<p><strong>Desarrollo de Sistemas en General</strong></p>
<p><a title="Software Development Metodologies at a Glance" href="http://blogs.msdn.com/b/jmeier/archive/2011/01/21/methodologies-at-a-glance.aspx">Metodologies at a Glance</a><strong> &#8211; </strong>J.D. Meier, un Principal Program Manager de Microsoft, en el equipo de Patterns &amp; Practices, escribe posts muy útiles constantemente. Este post es un mapa de algunas actividades/artefactos clave en varios procesos de desarrollo de software.</p>
<p>That&#8217;s it. Read on.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/links-del-dia-1/' addthis:title='Links del dia #1 ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/links-del-dia-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aliases de conexion en SQL Server</title>
		<link>http://gabrielrodriguez.net/aliases-de-conexion-en-sql-server/</link>
		<comments>http://gabrielrodriguez.net/aliases-de-conexion-en-sql-server/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 01:38:54 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=385</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/aliases-de-conexion-en-sql-server/' addthis:title='Aliases de conexion en SQL Server '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Un Alias de SQL es un nombre alternativo que se utiliza para realizar una conexion a un servidor de SQL Server. El alias encapsula los elementos requeridos de un string de conexion (como protocolo, puerto, hostname o ip), y los encapsula con un nombre escogido por el usuario. El alias de SQL es algo similar [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/aliases-de-conexion-en-sql-server/' addthis:title='Aliases de conexion en SQL Server ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/aliases-de-conexion-en-sql-server/' addthis:title='Aliases de conexion en SQL Server '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Un <strong>Alias de SQL </strong>es un <strong>nombre alternativo que se utiliza para realizar una conexion</strong> a un servidor de SQL Server. El alias <strong>encapsula los elementos requeridos de un string de conexion</strong> (como protocolo, puerto, hostname o ip), y los encapsula con un nombre escogido por el usuario.</p>
<p>El alias de SQL es algo<strong> similar o equivalente a un ODBC para Windows</strong>, excepto que el alcance del alias es solamente en aplicaciones relacionadas con SQL, es decir, no podríamos hacer un ping al alias desde una ventana de DOS.</p>
<p>En algunos comentarios leí que si en el campo de <strong>Server Name </strong>utilizamos el numero de IP directamente, en lugar del hostname (reverse DNS), podemos agilizar un poco la conexion debido al ahorro del dns lookup.</p>
<p>Ahora si, hay dos maneras de agregar un Alias de SQL:</p>
<ol>
<li>SQL Server Client Network Utility (<strong>cliconfg</strong>)</li>
<li>SQL Server Configuration Manager</li>
</ol>
<p>Por simplicidad yo siempre uso la primera, <strong>cliconfg</strong>. Los pasos para <strong>agregar un alias</strong> usando la Client Network Utility son:</p>
<ol>
<li> Start -&gt; Run</li>
<li>Teclear &#8220;<strong>cliconfg</strong>&#8221; -&gt; Enter</li>
<li>Ir al tab de Alias &#8220;<strong>Add</strong>&#8220;</li>
<li>LLenar los datos (Server Alias, Protocolo, etc)</li>
<li>Click en OK.</li>
</ol>
<p><strong>Figura 1: Dialogo principal de la SQL Server Client Network Utility</strong></p>
<div id="attachment_386" class="wp-caption aligncenter" style="width: 556px"><a href="http://gabrielrodriguez.net/wp-content/uploads/2009/07/cliconfg.png"><img class="size-full wp-image-386" title="SQL Server Client Network Utility (cliconfg)" src="http://gabrielrodriguez.net/wp-content/uploads/2009/07/cliconfg.png" alt="SQL Server Client Network Utility (cliconfg)" width="546" height="354" /></a><p class="wp-caption-text">SQL Server Client Network Utility (cliconfg)</p></div>
<p><strong>Figura 2: Dialogo de Nuevo Alias de la SQL Server Client Network Utility</strong></p>
<div id="attachment_388" class="wp-caption aligncenter" style="width: 610px"><a href="http://gabrielrodriguez.net/wp-content/uploads/2009/07/AddSQLServerAlias1.png"><img class="size-full wp-image-388" title="Nuevo SQL Alias usando cliconfg" src="http://gabrielrodriguez.net/wp-content/uploads/2009/07/AddSQLServerAlias1.png" alt="Nuevo SQL Alias usando cliconfg" width="600" height="319" /></a><p class="wp-caption-text">Nuevo SQL Alias usando cliconfg</p></div>
<p>El ejecutable <strong>cliconfg.exe </strong>está en el directorio de Windows\System32, y como el folder de System32 está en las variables de ambiente de Windows, podemos simplemente teclear el nombre del ejecutable desde cualquier lugar y lo reconocerá. <strong>Cliconfg.exe viene pre-instalado desde Windows 2000</strong>, así que nos permite agregar aliases de SQL sin instalar las SQL Server Client Tools.</p>
<p>La segunda manera de consultar los Aliases existentes, y de agregar nuevos, es usando el <strong>SQL Server Configuration Manager.</strong></p>
<p>Para acceder al SSCM los pasos son:</p>
<ol>
<li> Start &#8211; &gt; Run.</li>
<li>Teclear &#8220;<strong>compmgmt.msc</strong>&#8221; -&gt; Enter.</li>
<li>En el arbol del lado izquierdo, escoger &#8220;<strong>Services and Applications</strong>&#8220;.</li>
<li>Escoger &#8220;<strong>SQL Server Configuration Manager</strong>&#8220;.</li>
<li>Escoger &#8220;<strong>SQL Native Client Configuration</strong>&#8220;.</li>
<li>Escoger &#8220;<strong>Aliases</strong>&#8220;.</li>
</ol>
<p><strong>Figura 3: Pantalla principal del SQL Server Configuration Manager</strong></p>
<p style="text-align: center;">
<div id="attachment_387" class="wp-caption aligncenter" style="width: 708px"><a href="http://gabrielrodriguez.net/wp-content/uploads/2009/07/SQLServerConfigurationManagement.png"><img class="size-full wp-image-387 " title="SQL Server Configuration Management  - Aliases" src="http://gabrielrodriguez.net/wp-content/uploads/2009/07/SQLServerConfigurationManagement.png" alt="SQL Server Configuration Management  - Aliases" width="698" height="305" /></a><p class="wp-caption-text">SQL Server Configuration Management  - Aliases</p></div>
<p style="text-align: left;">Para agregar un alias nuevo usando el SQL Server Configuration Manager, simplemente hay que escoger la opcion &#8220;<strong>New Alias</strong>&#8221; del menú &#8220;<strong>Action</strong>&#8220;, y llenar los datos del diálogo.</p>
<p style="text-align: left;"><strong>Figura 4: Dialogo de Nuevo Alias usando SQL Server Configuration Manager</strong></p>
<p style="text-align: left;">
<div id="attachment_390" class="wp-caption aligncenter" style="width: 414px"><a href="http://gabrielrodriguez.net/wp-content/uploads/2009/07/AddSQLServerAlias2.png"><img class="size-full wp-image-390" title="Nuevo Alias SLQ usando SQL Server Configuration Manager" src="http://gabrielrodriguez.net/wp-content/uploads/2009/07/AddSQLServerAlias2.png" alt="Nuevo Alias SLQ usando SQL Server Configuration Manager" width="404" height="447" /></a><p class="wp-caption-text">Nuevo Alias SLQ usando SQL Server Configuration Manager</p></div>
<p style="text-align: left;">Por cierto, <strong>la unica ventaja del SQL Server Configuration Manager</strong> sobre la Client Network Utility, es que <strong>permite exportar la lista de Aliases a un archivo de texto</strong>, a través del menú &#8220;<strong>Action</strong>&#8220;, escogiendo &#8220;<strong>Export List</strong>&#8220;.</p>
<p style="text-align: left;">Una vez agregado el alias, <strong>podemos utilizarlo en el dialogo de conexion del SQL Server Management Studio</strong>, por ejemplo, y solamente teclear el nombre del alias, en lugar del hostname o ip y el puerto, en caso de que antes fuera requerido.</p>
<p style="text-align: left;">
<p style="text-align: left;">
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/aliases-de-conexion-en-sql-server/' addthis:title='Aliases de conexion en SQL Server ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/aliases-de-conexion-en-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error de instalacion de SQL Server 2008 Express</title>
		<link>http://gabrielrodriguez.net/error-de-instalacion-de-sql-server-2008-express/</link>
		<comments>http://gabrielrodriguez.net/error-de-instalacion-de-sql-server-2008-express/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 20:10:55 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Express]]></category>
		<category><![CDATA[Instalacion]]></category>
		<category><![CDATA[Problemas y Soluciones]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[Visual Studio 2008]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=240</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/error-de-instalacion-de-sql-server-2008-express/' addthis:title='Error de instalacion de SQL Server 2008 Express '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Varias personas se han topado un error de instalación de SQL Server 2008 Express, la version gratis de SQL Server, ya que en la etapa de Installation Rules, el renglon de &#8220;Previous releases of Microsoft Visual Studio 2008&#8243; tiene un estatus de Failed. Al parecer, hay algunos fixes que implican desinstalar Visual Studio 2008 y [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/error-de-instalacion-de-sql-server-2008-express/' addthis:title='Error de instalacion de SQL Server 2008 Express ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/error-de-instalacion-de-sql-server-2008-express/' addthis:title='Error de instalacion de SQL Server 2008 Express '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><div id="attachment_52" class="wp-caption aligncenter" style="width: 373px"><img class="size-full wp-image-52" title="Microsoft SQL Server 2008" src="http://gabrielrodriguez.net/wp-content/uploads/2009/01/sql-server-2008.gif" alt="Microsoft SQL Server 2008" width="363" height="75" /><p class="wp-caption-text">Microsoft SQL Server 2008 Express</p></div>
<p>Varias personas se han topado un <strong>error de instalación de SQL Server 2008 Express</strong>, la version gratis de SQL Server, ya que en la etapa de <strong>Installation Rules</strong>, el renglon de <strong>&#8220;Previous releases of Microsoft Visual Studio 2008&#8243; tiene un estatus de Failed</strong>.</p>
<p>Al parecer, hay algunos fixes que implican desinstalar Visual Studio 2008 y demás, pero algún conocedor de instaladores (probablemente alguien interno de Microsoft) dió a conocer que <strong>existen argumentos que se pueden pasar al .exe del instalador, si se ejecuta por command-line, para sobrepasar algunas de las Installation Rules</strong>.</p>
<p>El comando para sobrepasar la regla de instancias de Visual Studio 2008 sería:</p>
<p><strong>setup.exe /ACTION=install /SkipRules=VSShellInstalledRule</strong></p>
<p>Con esto, se puede <strong>instalar Microsoft SQL Server 2008 Express</strong> sin ningun problema, a pesar de ya tener instalado el Visual Studio 2008.</p>
<p>Espero les sirva.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/error-de-instalacion-de-sql-server-2008-express/' addthis:title='Error de instalacion de SQL Server 2008 Express ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/error-de-instalacion-de-sql-server-2008-express/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>E-book (libro) gratis de C#</title>
		<link>http://gabrielrodriguez.net/e-book-libro-gratis-de-c/</link>
		<comments>http://gabrielrodriguez.net/e-book-libro-gratis-de-c/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 02:09:30 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[.NET Reflector]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Ebooks]]></category>
		<category><![CDATA[Libros]]></category>
		<category><![CDATA[RedGate]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=236</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/e-book-libro-gratis-de-c/' addthis:title='E-book (libro) gratis de C# '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>La compañia RedGate, que creó los increíbles productos SQL Compare y SQL Prompt, entre otros, publicó esta semana un ebook (o libro electronico) de C# llamado Illustrated C# 2008, que está enfocado a desarrolladores completamente nuevos o que tienen un background de C++ o VB y que quieren migrar a C#. RedGate es la misma [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/e-book-libro-gratis-de-c/' addthis:title='E-book (libro) gratis de C# ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/e-book-libro-gratis-de-c/' addthis:title='E-book (libro) gratis de C# '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><div id="attachment_237" class="wp-caption alignnone" style="width: 120px"><img class="size-full wp-image-237" title="Illustrated C# 2008" src="http://gabrielrodriguez.net/wp-content/uploads/2009/04/illustratedcsharp.gif" alt="Ebook gratis de C# - Illustrated C# 2008" width="110" height="144" /><p class="wp-caption-text">Ebook gratis de C# - Illustrated C# 2008</p></div>
<p>La compañia <strong>RedGate</strong>, que creó los increíbles productos <a title="SQL Compare - Red Gate - Producto comparar bases de datos de SQL" href="http://www.red-gate.com/products/SQL_Compare/index.htm">SQL Compare</a> y <a title="SQL Prompt - Red Gate - Producto para tener Intellisense o Autocomplete en SQL Server" href="http://www.red-gate.com/products/SQL_Prompt/index.htm">SQL Prompt</a>, entre otros, <strong>publicó esta semana un ebook</strong> (o libro electronico) de C# llamado <strong>Illustrated C# 2008</strong>, que está <strong>enfocado a desarrolladores completamente nuevos o que tienen un background de C++ o VB </strong>y que quieren migrar a C#.</p>
<p><strong>RedGate</strong> es la misma compañía que ahora es dueña del <a title=".NET Reflector by Red Gate" href="http://www.red-gate.com/products/reflector/index.htm">.NET Reflector</a>, creado originalmente por <a title="Lutz Roeder" href="http://www.lutzroeder.com/">Lutz Roeder</a>.</p>
<p>El autor del ebook es <strong>Daniel Solis</strong>.</p>
<p><a title="Illustrated C# 2008" href="http://www.red-gate.com/products/ants_profiler/boost_app_performance_ebook5.htm?utm_source=infoq&amp;utm_medium=textad&amp;utm_term=1506&amp;utm_content=boostappperf-ebook2&amp;utm_campaign=antsprofiler">Pagina del Ebook Ilustrated C# 2008</a></p>
<p><a title="Ilustrated C# 2008 Ebook Download" href="http://downloads.red-gate.com/ebooks/DotNet/illustratedcsharp2008.zip">Link directo a bajar el Ebook Ilustrated C# 2008</a></p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/e-book-libro-gratis-de-c/' addthis:title='E-book (libro) gratis de C# ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/e-book-libro-gratis-de-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como obtener el valor default de una columna en SQL Server usando T-SQL</title>
		<link>http://gabrielrodriguez.net/como-obtener-el-valor-default-de-una-columna-en-sql-server-usando-t-sql/</link>
		<comments>http://gabrielrodriguez.net/como-obtener-el-valor-default-de-una-columna-en-sql-server-usando-t-sql/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 07:16:49 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[INFORMATION_SCHEMA]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=137</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/como-obtener-el-valor-default-de-una-columna-en-sql-server-usando-t-sql/' addthis:title='Como obtener el valor default de una columna en SQL Server usando T-SQL '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Hoy alguien de mi equipo de trabajo me preguntó como se podía comparar los valores de una columna para cada row contra el valor default de esa columna. Después de probar un rato en el Management Studio, aprendí que se puede utilizar las vistas de INFORMATION_SCHEMA para obtener información de metadata sobre objetos en SQL [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/como-obtener-el-valor-default-de-una-columna-en-sql-server-usando-t-sql/' addthis:title='Como obtener el valor default de una columna en SQL Server usando T-SQL ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/como-obtener-el-valor-default-de-una-columna-en-sql-server-usando-t-sql/' addthis:title='Como obtener el valor default de una columna en SQL Server usando T-SQL '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><div id="attachment_43" class="wp-caption aligncenter" style="width: 373px"><img class="size-full wp-image-43" title="SQL Server" src="http://gabrielrodriguez.net/wp-content/uploads/2008/12/sql-server-2008.gif" alt="SQL Server" width="363" height="75" /><p class="wp-caption-text">SQL Server</p></div>
<p>Hoy alguien de mi equipo de trabajo me preguntó como se podía comparar los valores de una columna para cada row contra el valor default de esa columna.</p>
<p>Después de probar un rato en el Management Studio, aprendí que <strong>se puede utilizar las vistas de INFORMATION_SCHEMA para obtener información de metadata sobre objetos en SQL Server</strong>.</p>
<p>Solo para aclarar&#8230;esto seguramente se puede hacer usando la tabla <strong>sysobjects </strong>de SQL Server, pero quería hacerlo de una manera más legible.</p>
<p>El query para obtener el valor default de una columna de alguna tabla es:</p>
<pre class="brush: sql; title: ; notranslate">

SELECT COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Vendedor'
AND COLUMN_NAME = 'CodigoPais'</pre>
<p>Un dato muy importante es que estas vistas (<strong>INFORMATION_SCHEMA</strong>) se crearon para apegarse al <strong>estándar SQL-92</strong>, con el objetivo de proveer meta-datos sobre los objetos de la base de datos.</p>
<p>Me dió gusto el haber investigado otra alternativa a sysobjects, porque esta investigación me hizo darme cuenta que el <strong>realizar mis queries para obtener meta-data usando INFORMATION_SCHEMA en lugar de SYSOBJECTS hace que mis queries sean portables</strong>, en lugar de estar limitados a SQL Server solamente, o incluso considerando también el escenario en que Microsoft decidiera cambiar la estructura de <strong>SYSOBJECTS </strong>de alguna manera que afectara mis queries.</p>
<p>Hay varias vistas de INFORMATION_SCHEMA. Para este escenario solo usé la de Columns, pero hay más, por ejemplo:</p>
<ul>
<li>CHECK_CONSTRAINTS</li>
<li>REFERENTIAL_CONSTRAINTS</li>
<li>COLUMN_DOMAIN_USAGE</li>
<li>ROUTINES</li>
<li>COLUMN_PRIVILEGES</li>
<li>ROUTINE_COLUMNS</li>
<li>COLUMNS</li>
<li>SCHEMATA</li>
<li>CONSTRAINT_COLUMN_USAGE</li>
<li>TABLE_CONSTRAINTS</li>
<li>CONSTRAINT_TABLE_USAGE</li>
<li>TABLE_PRIVILEGES</li>
<li>DOMAIN_CONSTRAINTS</li>
<li>TABLES</li>
<li>DOMAINS</li>
<li>VIEW_COLUMN_USAGE</li>
<li>KEY_COLUMN_USAGE</li>
<li>VIEW_TABLE_USAGE</li>
<li>PARAMETERS</li>
<li>VIEWS</li>
</ul>
<p>Les dejo la siguiente liga a un artículo del SQL Server Development Center de Microsoft, donde explican más detalles de las vistas de INFORMATION_SCHEMA, y a otro artículo que da información general referente a estas.</p>
<p><a title="Information_Schema Views - SQL Server Development Center" href="http://msdn.microsoft.com/en-us/library/ms186778(SQL.90).aspx">INFORMATION_SCHEMA Views</a></p>
<p><a title="Informacion general sobre INFORMATION_SCHEMA" href="http://www.devx.com/getHelpOn/10MinuteSolution/20561">INFORMATION_SCHEMA &#8211; A map to your database</a></p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/como-obtener-el-valor-default-de-una-columna-en-sql-server-usando-t-sql/' addthis:title='Como obtener el valor default de una columna en SQL Server usando T-SQL ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/como-obtener-el-valor-default-de-una-columna-en-sql-server-usando-t-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como cambiar el directorio default para respaldos de bases de datos en SQL Server 2005</title>
		<link>http://gabrielrodriguez.net/como-cambiar-el-directorio-default-para-respaldos-de-bases-de-datos-en-sql-server-2005/</link>
		<comments>http://gabrielrodriguez.net/como-cambiar-el-directorio-default-para-respaldos-de-bases-de-datos-en-sql-server-2005/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 07:43:39 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=123</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/como-cambiar-el-directorio-default-para-respaldos-de-bases-de-datos-en-sql-server-2005/' addthis:title='Como cambiar el directorio default para respaldos de bases de datos en SQL Server 2005 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Casi todos los días realizo un respaldo de la base de datos de una aplicación a la que le doy mantenimiento. La mayoría de la gente ya conoce el exageradamente sencillo proceso de dar click derecho sobre la base de datos que queremos respaldar, elegir la opción Tasks -&#62;Backup, la cual nos presenta el siguiente [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/como-cambiar-el-directorio-default-para-respaldos-de-bases-de-datos-en-sql-server-2005/' addthis:title='Como cambiar el directorio default para respaldos de bases de datos en SQL Server 2005 ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/como-cambiar-el-directorio-default-para-respaldos-de-bases-de-datos-en-sql-server-2005/' addthis:title='Como cambiar el directorio default para respaldos de bases de datos en SQL Server 2005 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Casi todos los días realizo un <strong>respaldo de la base de datos</strong> de una aplicación a la que le doy mantenimiento. La mayoría de la gente ya conoce el exageradamente sencillo proceso de dar click derecho sobre la base de datos que queremos respaldar, elegir la opción <strong>Tasks -&gt;Backup</strong>, la cual nos presenta el siguiente diálogo.</p>
<div id="attachment_124" class="wp-caption aligncenter" style="width: 530px"><a href="http://gabrielrodriguez.net/wp-content/uploads/2009/02/sqlbackup.png"><img class="size-full wp-image-124" title="Como cambiar el directorio default para respaldos de bases de datos en SQL Server 2005" src="http://gabrielrodriguez.net/wp-content/uploads/2009/02/sqlbackup.png" alt="Como cambiar el directorio default para respaldos de bases de datos en SQL Server 2005" width="520" height="466" /></a><p class="wp-caption-text">Como cambiar el directorio default para respaldos de bases de datos en SQL Server 2005</p></div>
<p>Ahora, si solo mantuviéramos un archivo de respaldo, la ubicación y nombre del archivo default tal vez estarían bien. El problema, para mí, es que yo guardo cada archivo de respaldo histórico en una estructura de tipo</p>
<p>D:\Proyecto\DatabaseBackup\fechaCompleta.bak</p>
<p>Por lo cual, si en el dialogo selecciono la opción de <strong>Remove</strong>, y luego la opción de <strong>Add</strong>, el <strong>directorio default para el respaldo de la base de datos </strong>se reinicia al default, que es algo así como el siguiente (puede variar según la instalación que cada quien haya hecho)</p>
<p><strong>C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data</strong></p>
<p>En mi opinión <strong>es desesperante tener que elegir el directorio en el que quiero guardar mi respaldo cada vez que realizo uno</strong>. Intenté revisar las opciones disponibles en <strong>Tools -&gt; Options</strong> y no encontré ningún setting para poder definir el directorio default a la hora de hacer un respaldo.</p>
<p>En algún lugar tenia que estar configurable ese setting, al menos para que el mismo SQL Server lo accesara, mi primer suposición fue la <strong>registry de Windows</strong>, y después de 5 minutos, Google confirmó.</p>
<p>Si abren la registry de Windows (Start -&gt; Run -&gt; regedit) y navegan hacia la llave</p>
<p>Para Windows 32 bits:</p>
<p><strong>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer</strong></p>
<p>Para Windows 64 bits:</p>
<p><strong>HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL  Server\MSSQL.1\MSSQLServer</strong></p>
<p><strong> </strong>Ahi está la llave <strong>BackupDirectory</strong>, a la cual se le puede modificar el valor a lo que ustedes quieran. Después, al momento de realizar un nuevo backup, solamente hay que modificar el nombre del archivo (si acaso se desea) y listo, no se pierde más tiempo en navegar hasta el folder correcto cada vez que se hace un respaldo.</p>
<p>Espero les sirva.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/como-cambiar-el-directorio-default-para-respaldos-de-bases-de-datos-en-sql-server-2005/' addthis:title='Como cambiar el directorio default para respaldos de bases de datos en SQL Server 2005 ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/como-cambiar-el-directorio-default-para-respaldos-de-bases-de-datos-en-sql-server-2005/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Que significa sargeable en SQL</title>
		<link>http://gabrielrodriguez.net/que-significa-sargeable-en-sql/</link>
		<comments>http://gabrielrodriguez.net/que-significa-sargeable-en-sql/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 06:55:14 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Optimizacion]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=112</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/que-significa-sargeable-en-sql/' addthis:title='Que significa sargeable en SQL '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Al estar leyendo foros de SQL sobre maneras de optimizar queries, me tope con una sugerencia de un DBA experto en la cual le sugeria a otro DBA el hacer que su query fuera sargeable. Nunca antes habia escuchado el termino, y al parecer no es tan conocido. Despues de leer un poco sobre el [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/que-significa-sargeable-en-sql/' addthis:title='Que significa sargeable en SQL ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://gabrielrodriguez.net/que-significa-sargeable-en-sql/' addthis:title='Que significa sargeable en SQL '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Al estar leyendo foros de SQL sobre maneras de <strong>optimizar queries</strong>, me tope con una sugerencia de un DBA experto en la cual le sugeria a otro DBA el <strong>hacer que su query fuera sargeable</strong>. Nunca antes habia escuchado el termino, y al parecer no es tan conocido.</p>
<p>Despues de leer un poco sobre el termino, me di cuenta que <strong>deberia ser conocimiento basico de SQL para cualquier desarrollador.</strong></p>
<p>Que la clausula de WHERe de un Query de SQL sea <strong>Sargeable significa que contenga una constante contra la cual comparar directamente el valor del campo de una tabla</strong> y el <strong>beneficio </strong>de que sea sargeable es <strong>que el Engine de SQL pueda utilizar cualquier index que exista sobre el campo</strong>, que resulta en un <strong>index seek</strong> en lugar de un table scan (que es más costoso en performance).</p>
<p>Para que este un poco mas claro: <strong>Un index esta creado únicamente sobre el VALOR del campo</strong>. <strong>Si nuestra clausula de WHERE encierra el campo indexado en una funcion</strong> (como por ejemplo SUBSTRING o CONVERT), <strong>cualquier posibilidad de usar el index esta eliminada</strong>, porque el Engine de SQL debe procesar cada row a traves de la funcion para determinar si cumple o no la constante contra la cual se esta comparando.</p>
<p>Un ejemplo muy sencillo seria el siguiente:</p>
<pre class="brush: sql; title: ; notranslate">
WHERE SUBSTRING(Apellido, 1, 4,) = 'Rodr'
</pre>
<p>La clausula de arriba no es Sargeable, porque el hecho de que exista un SUBSTRING contra nuestro campo, obliga al Engine a procesar cada campo.</p>
<p>En cambio, la clausula de abajo utiliza directamente el campo y se compara contra una constante, por lo cual se puede utilizar el index de nuestro campo.</p>
<pre class="brush: sql; title: ; notranslate">WHERE Apellido LIKE 'Rodr%'</pre>
<p>Otro ejemplo, que normalmente engañaría a varios de nosotros, seria un query para sacar todos los registros insertados en una tabla el dia de hoy, basándonos en el campo FechaHoraInsercion, que tiene tanto la Fecha como la Hora en que fue insertado el registro.</p>
<p>Una de las maneras mas comunes de hacer este query es el parsear el valor de FechaHoraInsercion y hacer la comparacion en una sola clausula, como por ejemplo:</p>
<pre class="brush: sql; title: ; notranslate">

SELECT NumeroCliente, Nombre, Apellido
FROM Clientes
WHERE
CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, FechaHoraInsercion))) = CONVERT(DATETIME, FLOOR(CONVERT(FLOAT,getDate())))
</pre>
<p>A pesar de que existe un índice sobre el campo FechaHoraInsercion, de nuevo, no podría ser usado porque el valor del campo en los indices es constante, y aquí tiene que ser pasado por 2 funciones CONVERT y una FLOOR.</p>
<p>La manera mas óptima de hacer este query (y que fuera sargeable) seria:</p>
<pre class="brush: sql; title: ; notranslate">

SELECT NumeroCliente, Nombre, Apellido
FROM Clientes
WHERE
FechaHoraInsercion &gt;= DateAdd(Day, DateDiff(Day, 0, GetDate()), 0)
AND FechaHoraInsercion &lt; DateAdd(Day, DateDiff(Day, 0, GetDate()), 1)
</pre>
<p>A pesar de tener 2 clausulas de WHERE en lugar de solo 1, el hecho de que el engine pueda calcular el valor de la constante del lado derecho de la expresion  y simplemente compararlo contra los valores almacenados en el index de FechaHoraInsercion ya resulta en una búsqueda mas óptima.</p>
<p>Espero que les sirva.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://gabrielrodriguez.net/que-significa-sargeable-en-sql/' addthis:title='Que significa sargeable en SQL ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/que-significa-sargeable-en-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

