JASoft.org

Cómo detectar registros duplicados en una base de datos

Cómo detectar registros duplicados en una base de datos
Esta es una consulta muy sencilla pero que a muchos principiantes les resulta de mucha utilidad, así que como hoy he tenido que usarla y me he acordado, la pongo aquí por si a alguien le viene bien. El problema es el habitual: tenemos una tabla con muchos registros y queremos saber si alguno de ellos está duplicado. Lo más común no es que nos interese realmente saber qué registros están duplicados, sino qué registros tienen dos o tres campos iguales. Por ejemplo, si tenemos una lista de clientes quizá no nos interesa saber quiénes están duplicados buscándolos por el nombre (ya que éste puede haber sido escrito diferente: con o sin tilde, con abreviatura o no), por lo que resultaría más interesante averiguar aquellos registros que tienen el teléfono y el email duplicados por ejemplo. La consulta es muy fácil, y usa una función de agrupamiento para determinarlo. La consulta genérica sería esta: 1: SELECT COUNT(*), CAMPO_A, CAMPO_B 2: FROM T... [Más]

Consulta para sacar información de campos en SQL Server

Consulta para sacar información de campos en SQL Server
Hoy un truco rápido. Imagínate que tienes dos bases de datos aparentemente idénticas en dos servidores SQL Server. Quizá una es la de producción y la otra es de desarrollo. Las BBDD deberían ser iguales pero no te fías de que sea así por el motivo que sea, y necesitas comprobar de manera rápida si, al menos, tienen las mismas tablas y número de campos. Si no tienes una herramienta mejor a mano con el propio SQL Server puedes conseguirlo fácilmente usando la información contenida en la tabla de sistema Information_Schema que, como su propio nombre indica, contiene información sobre el esquema de la base de datos, y por lo tanto nos permite consultar cualquier dato sobre la estructura y definición de los datos. En el enlace anterior está toda la información, pero vamos a ver un par de consultas sencillas pero útiles, por ejemplo para el caso planteado antes. Información sobre las tablas de la BD SELECT * FROM Information_Schema.Tables Número de campos por tabla Esta consulta es ... [Más]

Mensaje “No se permite guardar los cambios” en SQL Server 2008

Mensaje “No se permite guardar los cambios” en SQL Server 2008
Una vez creada una nueva tabla en una base de datos en SQL Server 2008 o SQL Server 2008 R2, si utilizas en SQL Server Management Studio, cuando intentas modificarla con algún cambio importante (como añadir o quitar un campo, por ejemplo), seguramente te encontrarás con este mensaje de advertencia: Lo que te está indicando es que no se han podido grabar los cambios en la tabla, y que los únicos campos permitidos son los que pueden contener nulos o tienen un valor por defecto (en este caso concreto). Además, la única opción que te da es la de aceptar, por lo que al hacerlo se te muestra otro mensaje de advertencia diciéndote que has cancelado el grabar los cambios (qué simpáticos: no te quedaba más opción que hacerlo): ¿A qué es debido esto?: El motivo es que el SQL Server Management Studio que viene con SQL Server 2008 trae activada una opción por defecto que impide cualquier cambio sobre las tablas que implique el tener que regenerarlas (es decir, que implique eliminar la tab... [Más]

SQL Server: cómo hacer copias de seguridad directamente en unidades de red

SQL Server: cómo hacer copias de seguridad directamente en unidades de red
Generalmente, lo que más nos interesa a la hora de realizar copias de seguridad es hacerlas hacia alguna máquina o dispositivo especializado de la red local, distintos a la máquina en la que se ejecuta nuestra aplicación o -en nuestro caso concreto- el servidor de datos. Así podremos recuperarlos desde cualquier otra máquina ante cualquier contingencia que surja. En los Data Center (y en muchas oficinas) suelen existir sistemas NAS (Network Attached Storage, almacenamiento en red) cuyo propósito es precisamente albergar las copias de seguridad. SQL Server, sin embargo, sólo ofrece soporte nativo para realizar copias de seguridad en unidades de disco o dispositvos de backup hardware locales. Esto siempre me ha parecido una seria limitación, ya que hacer copias de seguridad en local no me resulta útil en absoluto. Y tiene muchas limitaciones más (como no comprimir o cifrar las copias), aunque esto es bueno para las empresas que venden herramientas especializadas en ello, como la excelen... [Más]

Artículo en Scribd: Instalación de la base de datos Northwind - para principiantes

Artículo en Scribd: Instalación de la base de datos Northwind - para principiantes
La base de datos Northwind es utilizada en todo tipo de artículos, libros y cursos para ilustrar los conceptos básicos de trabajo con bases de datos Sql Server. Te la encuentras constantemente en todas partes. Los programadores principiantes a veces tienen dificultades para instalarla y empezar a usarla. De hecho yo mismo me encuentro en ocasiones explicándoselo a alguno que otro que se encuentra algo perdido. Por ello me he decidido a escribir un texto dirigido a absolutos principiantes que explica cómo descargar, instalar y aprender a conectarse a esta famosa base de datos de Microsoft. Está colgado en Scribd para leer on-line e imprimir: ARTÍCULO: Instalación de la base de datos Northwind - Principiantes [scribd id=21965622] ¡Espero que le sea útil a mucha gente!

¿Dónde está el Monitor de Actividad en SQL Server 2008?

¿Dónde está el Monitor de Actividad en SQL Server 2008?
Pues esto, pero con algún taco de por medio, fue lo que me pregunté la primera vez que quise utilizarlo en la versión 2008 de SQL Server. En SQL Server 2005 estaba en el nodo de administración del SQL Server Management Studio, bien a la vista y fácil de localizar. Pero en 2008 en ese nodo no hay nada que se le parezca ?¿?¿ Era imposible que se o hayan cargado así que en algún sitio debía de estar ¿no? Bueno la solución es fácil, ahora está en un botón de la barra de herramientas y en el menú contextual del nodo raíz con el nombre del servidor: La verdad es que podían haber dejado el nodo en donde estaba también ¿no? La buena noticia es que este nuevo monitor no tiene nada que ver con el anterior. Este es mucho más potente y da información muy valiosa, informándote incluso de las consultas que están tomando más tiempo y dándote pistas para optimizar las aplicaciones: Espero que a alguno le ayude a encontrarlo si busca este tema en Google :-)

SQL Server Compact 2008 SP1 Referencia Completa

SQL Server Compact 2008 SP1 Referencia Completa
SQL Server dispone de una versión embebida que es tan interesante como desconocida y poco utilizada. Se trata de SQL Server Compact Edition. La mayor parte de la gente la desecha como opción porque la asocia con crear aplicaciones para dispositivos móviles (como PDAs o teléfonos), pero lo cierto es que tiene una cantidad espectacular de aplicaciones en entornos de escritorio. Para empezar esta versión ligera de SQL Server es gratuita y compatible con su hermano mayor, con multitud de características avanzadas como SGBD. No necesita tener instalado un servicio permanentemente en ejecución en el sistema y es extremadamente ligera (tanto que puedes usarla en un teléfono, así que eso lo dice todo). Una de las características más interesantes es la de todas las opciones de sincronización que ofrece, que nos permiten replicar y mantener en sincronismo datos entre sistemas homogéneos, por lo que la hace ideal para aplicaciones que deban trabajar conectadas de forma no permanente y para almac... [Más]

Ya está disponible la versión definitva de SQL Server 2008

Ya está disponible la versión definitva de SQL Server 2008
Desde ayer los suscriptores de MSDN y Technet ya puede descargarse la versión definitiva de SQL Server 2008. Se trata de una gran noticia :-) Si eres suscriptor, ahí te dejo los enlaces: Edition Language Download Location SQL Server 2008 Developer (x86, x64, ia64) English MSDN Subscriber Downloads MSDN Top Subscriber Downloads SQL Server 2008 Enterprise (x86, x64, ia64) English MSDN Subscriber Downloads MSDN Top Subscriber Downloads TechNet Subscriber Downloads TechNet Top Subscriber Downloads SQL Server 2008 Standard (x86, x64) English MSDN Subscriber Downloads MSDN Top Subscriber Downloads TechNet Subscriber Downloads TechNet Top Subscriber Downloads SQL Server 2008 Web (x86, x64) English MSDN Subscriber Downloads MSDN Top Subscriber Downloads TechNet Subscriber Downloads TechNet Top Subscriber Downloads SQL Server 2008 Workgroup (x86, x64) English MSDN Subscriber Downloads MSDN Top Subscriber... [Más]

Generadores de datos personales aleatorios para pruebas

Generadores de datos personales aleatorios para pruebas
El otro día, para un proyecto, necesité disponer de una buena lista de nombres, apellidos, teléfonos y otros datos personales de individuos de distintas nacionalidades para poder hacer pruebas. Lo primero que como buen friki programador pensé fue la posibilidad de conseguir en Internet alguna lista de nombres y apellidos (busqué sobre heráldica, censos electorales y otras cosas así en Google) y luego hacer un programa para generarlos aleatoriamente combinándolos. El caso es que llegué hasta algo mucho mejor. Se trata de un par de páginas realmente interesantes que permiten generar datos aleatorios con bastantes parámetros. La primera de ellas es Generatedata.com: Te permite crear una lista de registros de datospersonales simulados a elegir entre mútliples opciones (ver desplegable de la figura), y luego exportarlos a diversos formatos, incluyendo sentencias INSERT de SQL para meterlos en una base de datos. Lo malo es que sólo soporta datos de ciudades y provincias de los países qu... [Más]

Compatibilidad entre versiones de SQL Server - problema la ordenación ORDER BY y los prefijos

Compatibilidad entre versiones de SQL Server - problema la ordenación ORDER BY y los prefijos
Bueno, he estado completamente "missing" durante 5 semanas. No es que me haya ido de vacacione (ojalá) sino que simplemente he tenido demasiado trabajo :-( Retomo mi actividad blogera habitual con una cosa curiosa que me ha pasado recientemente y que estoy seguro de que a más de uno le podrá resultar útil. Resulta que recientemente migramos una base de datos hecha con SQL Server 2000 a SQL Server 2005. Lo primero que hice una vez adjuntada al nuevo servidor fue poner el modo de compatibilidad con SQL Server 2005, es decir, hacer que se comportara nativamente como si siempre hubiera estado en esta última versión del SGBDR: sp_dbcmptlevel 'MiBaseDatos', '90' Este comando T-SQL hace que la BD indicada se comporte con el nivel de compatibilidad indicado, en este caso la versión 9.0 de SQL Server, o sea, la 2005. El caso es que todo parecía ir estupendamente, pero una de las consultas empezó a fallar. Y se tratata de una consulta muy sencilla. No la voy aponer aquí porque forma parte... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico