Identificadores de base de datos

El nombre de un objeto de base de datos se conoce como su identificador. Cualquier elemento de Microsoft SQL Server puede tener un identificador. Servidores, bases de datos y objetos de bases de datos, como tablas, vistas, columnas, índices, desencadenadores, procedimientos, restricciones, reglas, etc. pueden tener identificadores. Se requiere que la mayor parte de los objetos tengan identificadores; pero para ciertos objetos, como las restricciones, son opcionales.

El identificador de un objeto se crea cuando se define el objeto. A continuación, el identificador se utiliza para hacer referencia al objeto. Por ejemplo, la instrucción siguiente crea una tabla con el identificador TableX y dos columnas con los identificadores KeyCol y Description:

CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80))

Esta tabla tiene también una restricción sin nombre. La restricción PRIMARY KEY no tiene ningún identificador.

La intercalación de un identificador depende del nivel en que está definido. Se asigna a los identificadores de objetos de instancia, como los inicios de sesión y los nombres de base de datos la intercalación predeterminada de la instancia. A los identificadores de objetos de una base de datos, como nombres de tablas, vistas y columnas, se asigna la intercalación predeterminada de la base de datos. Por ejemplo, es posible crear dos tablas con nombres que solo se diferencian en las mayúsculas en una base de datos con intercalación que distinga entre mayúsculas y minúsculas, pero no se pueden crear en una base de datos con intercalación que no distinga entre mayúsculas y minúsculas.

[!NOTA]

Los nombres de variables, funciones y procedimientos almacenados deben cumplir las reglas para los identificadores de Transact-SQL.

Clases de identificadores

Existen dos clases de identificadores:

  • Identificadores normales
    Siguen las reglas de formato de los identificadores. Los identificadores normales no están delimitados cuando se usan en instrucciones Transact-SQL.

    SELECT *
    FROM TableX
    WHERE KeyCol = 124
    
  • Identificadores delimitados
    Se incluyen entre comillas dobles (") o corchetes ([ ]). Los identificadores que siguen las reglas de formato de los identificadores pueden no estar delimitados. Por ejemplo:

    SELECT *
    FROM [TableX]         --Delimiter is optional.
    WHERE [KeyCol] = 124  --Delimiter is optional.
    

    Los identificadores que no cumplen las reglas de los identificadores deben estar delimitados en las instrucciones Transact-SQL. Por ejemplo:

    SELECT *
    FROM [My Table]      --Identifier contains a space and uses a reserved keyword.
    WHERE [order] = 10   --Identifier is a reserved keyword.
    

Ambos identificadores, normales y delimitados, deben contener entre 1 y 128 caracteres. En el caso de las tablas temporales locales, el identificador puede tener un máximo de 116 caracteres.

Palabras reservadas

El identificador no debe ser una palabra reservada de Transact-SQL. SQL Server se reserva las versiones en mayúsculas y minúsculas de las palabras reservadas. Cuando se usan en instrucciones Transact-SQL, los identificadores que no cumplan estas reglas deben aparecer delimitados por comillas dobles o corchetes. Las palabras reservadas dependen del nivel de compatibilidad de la base de datos. Este nivel se puede establecer mediante la instrucción ALTER DATABASE.

Vea también

Referencia

ALTER TABLE (Transact-SQL)

CREATE DATABASE (Transact-SQL)

CREATE DEFAULT (Transact-SQL)

CREATE PROCEDURE (Transact-SQL)

CREATE RULE (Transact-SQL)

CREATE TABLE (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

CREATE VIEW (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

DELETE (Transact-SQL)

INSERT (Transact-SQL)

Palabras clave reservadas (Transact-SQL)

SELECT (Transact-SQL)

UPDATE (Transact-SQL)