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 |
---|---|
Toda la sintaxis, excepto la cláusula execute_statement. |
|
Toda la sintaxis. |
|
Toda la sintaxis. |
|
Toda la sintaxis. |
|
Toda la sintaxis. |
|
Ejecución de procedimientos almacenados definidos por el usuario, procedimientos almacenados del sistema, funciones definidas por el usuario y funciones del sistema. |
|
Toda la sintaxis. |
|
Toda la sintaxis. |
|
Toda la sintaxis, con las excepciones siguientes:
|
|
Toda la sintaxis, con las excepciones siguientes:
|
|
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.