Buscar este blog

miércoles, 24 de marzo de 2010

Variantes del SELECT COUNT con DISTINCT

Seguramente, muchos de vosotros habréis usado en innumerables ocasiones la función de T-SQL COUNT, que no hace sino devolver un número de registros: de una tabla, de un conjunto de resultados, etc...

En una de sus aplicaciones, combinado con el DISTINCT -uno de los dos argumentos que admite- COUNT nos devuelve el número de valores únicos no nulos de la tabla o conjunto de resultados que estemos consultando.

Pero ¡ojo! Cuidado con la sintaxis, o podemos obtener el valor equivocado sin darnos cuenta. No es lo mismo:

SELECT COUNT (DISTINCT NombreCampo) FROM NombreTabla

que:

SELECT COUNT(*), DISTINCT NombreCampo FROM NombreTabla

jueves, 11 de marzo de 2010

¡Cuidado! Sólo puedes tener 128 niveles en el tipo de datos XML

En la versión 2005 de Microsoft SQL Server, dábamos la bienvenida al nuevo tipo de datos XML. Éste nos prometía un sinfín de comodidades y ventajas en el uso y almacenamiento de XMLs en nuestras bases de datos.

Así, haciendo un uso correcto de los mismos, podríamos tener nuestra información con estructuras heterogéneas almacenada en este markup language tan popular, sin engorrosas conversiones a cadenas o datos binarios.

A su vez, SQL Server nos proveía con una serie de métodos y facilidades que daban un importante soporte al nuevo tipo de datos.

Sin embargo, algunos ya nos hemos topado con una limitación -no resuelta en SQL Server 2008- con el tipo de datos XML: Sólo soporta hasta 128 niveles de profundidad en los nodos del XML que almacena. Sí, son muchos, pero no deja de ser un límite. Y un límite alcanzable. Ha ocurrido, ocurre, y ocurrirá.

miércoles, 10 de marzo de 2010

SET NOCOUNT ON

Antes que nada, permitidme presentar este nuevo blog en el que un programador cualquiera, de una empresa cualquiera, tratará de contaros el día a día de sus peripecias con Microsoft SQL Server. Como dicen que la experiencia es un grado y que de los errores se aprende, intentaré desde estas líneas que l@s mí@s puedan serviros cuando os veáis en las mismas diatribas que me han llevado a escribir estas líneas. Sin más, allá vamos.

Entre las muchas instrucciones de configuración que nos ofrece Microsoft SQL Server, hay una cuyo uso no parece aportar demasiado, pero que es vital si no queréis enfrentaros a "fenómenos paranormales" en algunas de vuestras queries.

Se trata de SET NOCOUNT ON