Compartir a través de


Solucionar problemas de Transact-SQL IntelliSense

Hay algunos casos en que es posible que las opciones de IntelliSense no funcionen como se espera.

Disponibilidad en línea y sin conexión

Las opciones de IntelliSense, Lista de miembros, Palabra completa, Información de parámetros e Información rápida, solo están disponibles en el editor de Transact-SQL bajo ciertas condiciones. Para obtener más información acerca de estas características, vea Información general de Transact-SQL IntelliSense.

Hay dos factores principales que determinan la disponibilidad de estas características:

  • Conectividad con una instancia de SQL Server: Cuando existe conexión con una instancia de SQL Server, IntelliSense se encuentra disponible. En este caso, los metadatos de IntelliSense se obtienen de la conexión, aun cuando el archivo que está editando se encuentre asociado a un proyecto de base de datos.

  • Asociación con un proyecto de base de datos: Cuando el archivo que está editando con el editor de Transact-SQL está asociado a un proyecto de base de datos, IntelliSense se encuentra disponible. En este caso, si no está conectado a una instancia de SQL Server, los metadatos de IntelliSense se obtienen de los objetos de base de datos asociados al proyecto.

La siguiente tabla describe cómo estos factores afectan a la disponibilidad de las características: Lista de Miembros, Palabra completa, Información de parámetros e Información rápida.

¿Conectado a una instancia de SQL Server?

¿Asociado a un proyecto de base de datos?

Disponible

Notas

IntelliSense basado en la conexión

No

IntelliSense basado en la conexión

No

IntelliSense basado en el proyecto

No

No

No

Cuando el editor de Transact-SQL está conectado a una instancia de SQL Server, IntelliSense está disponible y muestra objetos asociados a esa conexión de base de datos. Cuando el editor de Transact-SQL no está conectado a una instancia de SQL Server, la información de IntelliSense procede de los objetos asociados al proyecto de base de datos. Si el editor de Transact-SQL no está conectado a una instancia de SQL Server ni está asociado a un proyecto de base de datos, IntelliSense no estará disponible.

Las características de análisis de IntelliSense y la característica de Fragmentos de código de Transact-SQL siempre están disponibles, incluso cuando el editor no está asociado a un proyecto o conectado a una instancia de SQL Server.

Otras condiciones que afectan a IntelliSense

Las condiciones siguientes pueden afectar al comportamiento de IntelliSense:

  • Hay un error de código encima del cursor.

    Si hay una instrucción incompleta u otro error de código encima de la ubicación del punto de inserción, es posible que IntelliSense no pueda analizar los elementos del código y que, por lo tanto, no funcione. Para volver a habilitar IntelliSense, puede marcar con comentarios el código aplicable.

  • El punto de inserción está dentro de un comentario de código.

    Las opciones de IntelliSense no están disponibles cuando el punto de inserción está dentro de un comentario del archivo de origen.

  • El punto de inserción está dentro de un literal de cadena.

    Las opciones de IntelliSense no están disponibles cuando el punto de inserción está dentro de las comillas de un literal de cadena; por ejemplo:

    WHERE FirstName LIKE 'Patri%|'

  • La característica está desactivada.

    La mayoría de las características de IntelliSense funcionan automáticamente de forma predeterminada; no obstante, se puede deshabilitar cualquiera de ellas.

Incluso cuando la función de Completar palabra está deshabilitada, puede utilizar otras características de IntelliSense. Para obtener más información, vea Modifying IntelliSense Options.

Consideraciones para el editor de Transact-SQL

Los siguientes aspectos se aplican al editor de Transact-SQL:

  • La funcionalidad de IntelliSense para el editor de Transact-SQL no se puede utilizar con todos los elementos de la sintaxis de Transact-SQL. La ayuda sobre parámetros no es compatible con los parámetros de algunos objetos, como los procedimientos almacenados extendidos. Para obtener más información, vea Sintaxis de Transact-SQL compatible con IntelliSense.

  • IntelliSense no está disponible para el editor de Transact-SQL cuando nos conectamos a versiones de Motor de base de datos de SQL Server anteriores a SQL Server 2008.

  • IntelliSense no está disponible en el editor de Transact-SQL cuando el editor de Transact-SQL no está asociado a un proyecto y el editor de Transact-SQL no está conectado a un motor de base de datos.

  • IntelliSense está desactivado en el editor de Transact-SQL cuando el modo SQLCMD está activado.

  • La funcionalidad de IntelliSense no abarca a los objetos de base de datos creados por otra conexión después de que la ventana del editor se conecte a la base de datos. Puede elegir uno de estos tres mecanismos para actualizar la memoria caché de objetos de la ventana del editor:

  • Cuando la conexión es a una instancia de SQL Server, la memoria caché de IntelliSense no reflejará los cambios realizados si usted u otros usuarios ejecutan comandos CREATE, DROP o ALTER sobre esa instancia durante la sesión de edición de Transact-SQL. Para actualizar la memoria caché de IntelliSense, seleccione el menú Editar, seleccione IntelliSense y, a continuación, seleccione Actualizar caché local

  • Utilice el método abreviado de teclado CTRL+K seguido de CTRL+R.

  • Las listas de finalización no incluyen los objetos de base de datos para los que no tiene permisos. IntelliSense marca las referencias a los objetos para los que tiene permisos. Por ejemplo, si abre un script que ha escrito otra persona, cualquier referencia a los objetos para los que esa persona tenga permisos y usted no, se marca como incorrecta.

  • Las listas de finalización podrían dejar de funcionar si pierde la conexión a la instancia de SQL Server. Vuelva a conectarse a la instancia.

Vea también

Otros recursos

Información general de Transact-SQL IntelliSense

Usar la coincidencia de delimitadores de Transact-SQL

Utilizar fragmentos de código de Transact-SQL

Sintaxis de Transact-SQL compatible con IntelliSense