Ir al contenido principal

Nuevo modo de autocompletado para IntelliSense en SQL Server Management Studio 2012. ¿Cómo cambiarlo?

Con SQL Server 2008 llegó IntelliSense para T-SQL. IntelliSense es una herramienta que nos ofrece el editor de SQL Server Management Studio para facilitarnos la escritura de código T-SQL. Básicamente, entre otras cosas, carga el catálogo de nuestra base de datos para facilitarnos la escritura de consultas.

Así, si tenemos una tabla que se llama MiTabla y empezamos a escribir en el editor de consultas algo como
SELECT *
FROM Mi
Intellisense nos mostrará rápidamente las opciones del catálogo que se pueden corresponder con lo que estamos escribiendo, para facilitarnos así la escritura de textos y minimizar también la posibilidad de erratas en nuestro tecleo de código.

Hasta SQL Server 2012, IntelliSense mostraba esta lista de miembros, seleccionando progresivamente el valor más parecido a lo que estábamos escribiendo. Si pulsábamos la tecla espacio, una coma, retorno de carror, un paréntesis, o cualquier otra tecla que indicase al editor que habíamos acabado de escribir el término actual, IntelliSense lo completaba automáticamente con la selección actual.

Esto conllevaba que, en algunas ocasiones, IntelliSense nos auto-completase palabras sin que nuestra intención real fuese escribirlas.

Así pues, el auto-completado ha cambiado ligeramente en la nueva versión de SQL Server. Como podemos apreciar en la imagen siguiente, en la versión actual SQL Server deja una línea encima de todos los posibles valores que encajan con lo que estamos escribiendo. En esa línea aparece simplemente lo que hemos escrito hasta el momento. Si lo que queremos es conservar lo tecleado y no elegir ninguno de los valores que IntelliSense nos ofrece, basta con pulsar espacio, coma o cerrar paréntesis y se mantendrá el texto tal cual.

El nuevo IntelliSense nos permite mantener lo que estamos escribiendo o seleccionar un valor propuesto.

¿Y si quiero mantener el comportamiento anterior?


Es posible. SQL Server nos ofrece la posibilidad de mantener el mencionado comportamiento anterior total o parcialmente.

Si nos gusta el nuevo modo de funcionamiento de IntelliSense, pero queremos poder elegir la palabra que queremos escribir cuando IntelliSense ya la ha encontrado, podemos usar el tabulador, así: Vemos en la imagen que la selección más aproximada al texto que estamos escribiendo aparece rodeada de un recuadro amarillo. Si pulsamos la tecla TAB se escribirá lo que aparece dentro de ese recuadro, como cuando en versiones anteriores se elegía automáticamente la opción más parecida a lo escrito.

Aun así, si eres de los que prefiere el modo de funcionamiento anterior de IntelliSense, SQL Server te ofrece la posibilidad de seguir usándolo, mediante la combinación de teclas Ctrl + Alt + Espacio. También podemos acceder a esta opción en el menú Edición / IntelliSense. Eso sí, con el inconveniente de que habrá que cambiar el modo cada vez que abramos una ventana nueva del editor.

Si queremos cambiar el modo del IntelliSense podemos pulsar Ctrl + Alt + Espacio.

Una vez cambiado al modo anterior, escribiendo lo que aparece en la imagen, SQL Server nos completará automáticamente la palabra MiTabla si pulsamos cualquiera de las teclas comentadas anteriormente.

Modo de funcionamiento anterior a SQL Server 2012 de IntelliSense.

Recordad que en ambos modos podremos movernos con los cursores por la lista mostrada o usar el ratón para elegir el texto que realmente queremos escribir. En este caso, podríamos elegir MiTabla2 simplemente pulsando la tecla cursor con la flecha hacia abajo para seleccionarla.

Comentarios

Entradas populares de este blog

Aprendiendo a usar LEFT OUTER JOIN

En esta entrada pretendemos explicar los diferentes resultados obtenidos por distintas construcciones de consultas que, aparentemente, deberían producir el mismo conjunto de resultados. Así, veremos las diferencias entre filtrar los resultados de una query en la unión (Join) mediante condiciones ON y mediante cláusulas WHERE.

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

Script para obtener el tamaño de todas las tablas de la base de datos

En algunas ocasiones podemos vernos con la necesidad de conocer qué tablas de nuestra base de datos están ocupando más espacio en disco. Por ejemplo, si disponemos de SQL Server Express , cuyas bases de datos están limitadas a 4GB o 10GB, según la versión que estemos usando -4, hasta 2005; 10, a partir de 2008-, aparte de usar las opciones de comprimir la base de datos, poner el log en el modo simple de recuperación o ajustar las políticas de crecimiento automático de nuestros ficheros, podemos necesitar averiguar qué tablas crecen más para tomar las decisiones oportunas.