sábado, 4 de junio de 2016

Intellisense en SQL Server

Desde la versión SQL Server 2008 el editor de scripts (query analycer) de SQL Server incorpora algunas herramientas de IntelliSense aunque todavía está lejos de la funcionalidad de Visual Studio.
La tecnología IntelliSense en SQL Server aún no está muy evolucionada. En muchos lugares no aparece en absoluto, y tampoco funciona con servidores remotos. Sin embargo en las últimas versiones ha habido grandes avances en IntelliSense. 
En este artículo se hará un breve repaso de IntelliSense y cómo usarlo y también a arrojar algo de luz sobre los momentos en que no parece estar funcionando IntelliSense.

¿Que es IntelliSense?

IntelliSense para SQL Server Management Studio, se introdujo por primera vez en SQL 2008 es un mecanismo de autoescritura de código inteligente que aumenta la productividad de desarrollo al hacer fragmentos de código, las definiciones y chequeo de sintaxis sin tener que salir del editor.
IntelliSense está activado por defecto, pero se puede desactivar en Herramientas Opciones -> Editor de texto ->  Transact SQL -> IntelliSense.

IntelliSense en SQL Server



IntelliSense en SQL Server

Si desea utilizar la lista de miembros y la información de  parámetros, hay que asegurarse de que está activada en la configuración general de Transact-SQL.

Lista de miembros IntelliSense SQL Server


Lista de miembros

 
Al presionar CTRL + J se abre una lista de todos los miembros que son válidos para la palabra clave específica tecleada. En el ejemplo siguiente muestra la lista de todos los miembros válidos que se pueden utilizar después de la palabra clave EXEC. También sale la lista si tecleamos la primera letra del nombre del procedimiento a ejecutar.

Lista de miembros IntelliSense SQL Server


Información de Parámetros

La lista de información de parámetros indica los parámetros necesarios para una función o un procedimiento almacenado. Al escribir un espacio, a continuación del nombre de un procedimiento almacenado o un paréntesis "(" se activa la opción de información de los parámetros de IntelliSense. La información de los parámetros no sólo proporciona el nombre de los parámetros requeridos, sino también sus tipos de datos, así como los valores por defecto. El siguiente parámetro que debe ser proporcionado se muestra en negrita.


Lista de parámetros IntelliSense SQL Server


Informacion Rápida

Quick info brings up a tool tip with the declaration of the item you are hovering over as long as the syntax is supported by IntelliSense.
La Información rápida muestra la declaración del elemento que se ciernen sobre la sintaxis apoyado por IntelliSense y muestra en este caso el tipo de la variable.

Información de parámetros IntelliSense SQL Server

En modo de ejecución también muestra el valor de la expresión.

Información de parámetros IntelliSense SQL Server

Delimitador de pares de elementos

IntelliSense now has the ability to match beginning and closing pairs of control flow elements such as BEGIN and END. This is very handy when you have multiple nested delimiters.
The matching BEGIN and END will be highlighted when you finish typing the last letter of both the BEGIN and END. Unfortunately it doesn’t highlight it again when you place the cursor on it again. In order to see the highlight again after you have moved on to another line of code, you have to delete a letter and retype it in either the BEGIN or END tags.
IntelliSense ahora tiene la capacidad para coincidir con el comienzo y el cierre de pares de elementos de flujo de control tales como BEGIN y END. Esto es muy útil cuando se tienen varios delimitadores anidados.
Las coincidencias de BEGIN y END se resaltará cuando termine de escribir la última letra de tanto el BEGIN y END. Por desgracia, no se pone de manifiesto de nuevo cuando se coloca el cursor sobre ella de nuevo. Para ver lo más destacado de nuevo después de haber pasado a otra línea de código, es necesario borrar una letra y volver a escribir en cualquiera de las etiquetas comienza o terminan.
El delimitador de pares de objetos se aplica a:

Paréntesis
BEGIN … END
BEGIN TRY … END TRY
BEGIN CATCH … END CATCH

Resolución de problemas comunes con IntelliSense

IntelliSense no funciona

Hay unas razones por las que podría no estar sucediendo.
1. Comprobar si IntelliSense En primer lugar está habilitado como se ha explicado anteriormente en este artículo. 
2. Asegúrarse de que no hay errores de sintaxis en cualquier lugar de la página antes de su cursor, resolver el error de código debe volver a activar IntelliSense.
3. IntelliSense no funciona dentro de comentarios, descomentar la sección para obtener las sugerencias de IntelliSense.
4. IntelliSense no funciona dentro de comillas. Coloca el cursor fuera de las comillas.
5. Asegúrarse de que se está conectado a una instancia de SQL Server o un proyecto de base de datos.
6. IntelliSense sólo se admite en SQL Server 2008 y versiones posteriores.
7. IntelliSense no funciona para  objetos cifrados.
8. No se admite toda la sintaxis. Echar un vistazo para ver si es compatible con su sintaxis.
9. ¿Estás ejecutando en modo SQLCMD? IntelliSense no es compatible con el modo de comando. Volver al modo regular para obtener IntelliSense.
10. IntelliSense actualmente no es compatible con SQL Azure.

No aparecen todos los objetos en la lista

Cuando se añade un nuevo objeto a una base de datos de la caché IntelliSense necesita actualizarse. Esto puede hacerse presionando CTRL + SHIFT + R o haciendo clic en la opción de menú Editar -> Actualizar IntelliSense caché local.

Funcionalidades de IntelliSense en SQL Server

IntelliSense no mostrará ningún objeto parta el que no tiene permisos. Es necesario garantizar que en efecto tiene permiso para ver los objetos que faltan.

IntelliSense sólo trabaja al comienzo de mi script

A veces parece como si IntelliSense deja de funcionar al final de la página. Esto puede ser porque tiene un error de sintaxis un poco más arriba o porque se ha excedido el tamaño máximo de escritura.

Puede establecer el tamaño máximo de secuencia de comandos hay que ir a Herramientas Opciones -> Editor de texto de Transact-SQL -> IntelliSense.

Tamaño de script IntelliSense SQL Server



No hay comentarios:

Publicar un comentario