Compartir a través de


Sintaxis de Transact-SQL compatible con IntelliSense

En este tema se describen las instrucciones y los elementos de sintaxis de Transact-SQL que IntelliSense admite en SQL Server 2012.

Instrucciones admitidas por IntelliSense

En SQL Server 2012, IntelliSense solamente admite las instrucciones Transact-SQL de uso más frecuente. Algunas condiciones generales del Editor de consultas de Motor de base de datos pueden impedir el funcionamiento de IntelliSense. Para obtener más información, vea Solución de problemas IntelliSense (SQL Server Management Studio).

[!NOTA]

IntelliSense no está disponible para objetos de base de datos cifrados, como funciones definidas por el usuario o procedimientos almacenados cifrados. La ayuda sobre parámetros y la información rápida no están disponibles para los parámetros de los procedimientos almacenados extendidos y los tipos definidos por el usuario de la integración con CLR.

Instrucción SELECT

El Editor de consultas del Motor de base de datos proporciona compatibilidad con IntelliSense para los elementos de sintaxis siguientes de la instrucción SELECT:

SELECT

WHERE

FROM

ORDER BY

HAVING

UNION

FOR

GROUP BY

TOP

OPTION (sugerencia)

Instrucciones Transact-SQL adicionales compatibles

El Editor de consultas de Motor de base de datos también proporciona compatibilidad con IntelliSense para las instrucciones Transact-SQL que se muestran en la tabla siguiente.

Instrucción Transact-SQL

Sintaxis compatible

INSERT

Toda la sintaxis, excepto la cláusula execute_statement.

UPDATE

Toda la sintaxis.

DELETE

Toda la sintaxis.

DECLARE @local_variable

Toda la sintaxis.

SET @local_variable

Toda la sintaxis.

EXECUTE

Ejecución de procedimientos almacenados definidos por el usuario, procedimientos almacenados del sistema, funciones definidas por el usuario y funciones del sistema.

CREATE TABLE

Toda la sintaxis.

CREATE VIEW

Toda la sintaxis.

CREATE PROCEDURE

Toda la sintaxis, con las excepciones siguientes:

  • No hay compatibilidad con IntelliSense para la cláusula EXTERNAL NAME.

  • En la cláusula AS, IntelliSense solamente es compatible con las instrucciones y la sintaxis que se mencionan en este tema.

ALTER PROCEDURE

Toda la sintaxis, con las excepciones siguientes:

  • No hay compatibilidad con IntelliSense para la cláusula EXTERNAL NAME.

  • En la cláusula AS, IntelliSense solamente es compatible con las instrucciones y la sintaxis que se mencionan en este tema.

USE

Toda la sintaxis.

IntelliSense en las instrucciones compatibles

La característica IntelliSense del Editor de consultas de Motor de base de datos es compatible con los elementos de sintaxis siguientes cuando se utilizan en una de las instrucciones Transact-SQL compatibles:

  • Todos los tipos de combinación, incluso APPLY

  • PIVOT y UNPIVOT

  • Referencias a los objetos de base de datos siguientes:

    • Bases de datos y esquemas

    • Tablas, vistas, funciones con valores de tabla y expresiones de tabla

    • Columnas

    • Procedimientos y parámetros de procedimientos

    • Funciones escalares y expresiones escalares

    • Variables locales

    • Expresiones de tabla común (CTE)

  • Objetos de base de datos a los que solo se hace referencia en instrucciones CREATE o ALTER del script o del proceso por lotes, pero que no existen en la base de datos porque el script o el proceso por lotes no se han ejecutado todavía. Estos objetos son los siguientes:

    • Tablas y procedimientos especificados en una instrucción CREATE TABLE o CREATE PROCEDURE del script o del proceso por lotes.

    • Cambios en las tablas y los procedimientos especificados en una instrucción ALTER TABLE o ALTER PROCEDURE del script o del proceso por lotes.

    [!NOTA]

    La característica IntelliSense no estará disponible para las columnas de una instrucción CREATE VIEW hasta que se haya ejecutado la instrucción CREATE VIEW.

La característica IntelliSense no se proporciona para los elementos enumerados anteriormente cuando se utilizan en otras instrucciones Transact-SQL. Por ejemplo, los nombres de columna que se utilizan en una instrucción SELECT son compatibles con IntelliSense, pero no los de columnas que se utilizan en la instrucción CREATE FUNCTION.

Ejemplos

Dentro de un script o un proceso por lotes de Transact-SQL, la característica IntelliSense del Editor de consultas de Motor de base de datos solamente es compatible con las instrucciones y la sintaxis mencionadas en este tema. En los ejemplos de código de Transact-SQL siguientes se muestran las instrucciones y los elementos de sintaxis admitidos por IntelliSense. Por ejemplo, en el proceso por lotes siguiente, la característica IntelliSense está disponible para la instrucción SELECT cuando se codifica por sí misma, pero no cuando la instrucción SELECT está contenida en una instrucción CREATE FUNCTION.

USE AdventureWorks2012;
GO
SELECT Name
FROM Production.Product
WHERE Name LIKE N'Road-250%' and Color = N'Red';
GO
CREATE FUNCTION Production.ufn_Red250 ()
RETURNS TABLE
AS
RETURN 
(
    SELECT Name
    FROM AdventureWorks2012.Production.Product
    WHERE Name LIKE N'Road-250%'
      AND Color = N'Red'
);GO

Esta funcionalidad también se aplica a los conjuntos de instrucciones Transact-SQL de la cláusula AS de una instrucción CREATE PROCEDURE o ALTER PROCEDURE.

Dentro de un script o un proceso por lotes de Transact-SQL, la característica IntelliSense es compatible con los objetos que se han especificado en una instrucción CREATE o ALTER; sin embargo, estos objetos no existen en la base de datos porque no se han ejecutado las instrucciones. Por ejemplo, puede escribir el código siguiente en el Editor de consultas:

USE MyTestDB;
GO
CREATE TABLE MyTable
    (PrimaryKeyCol   INT PRIMARY KEY,
    FirstNameCol      NVARCHAR(50),
   LastNameCol       NVARCHAR(50));
GO
SELECT 

Después de escribir SELECT, IntelliSense enumera PrimaryKeyCol, FirstNameCol y LastNameCol como posibles elementos en la lista de selección, aunque no se haya ejecutado el script y MyTable no exista todavía en MyTestDB.