데이터베이스 식별자Database Identifiers

데이터베이스 개체 이름을 그 개체의 식별자라고 합니다.The database object name is referred to as its identifier. MicrosoftMicrosoft SQL ServerSQL Server 의 모든 개체에는 식별자가 있습니다.Everything in MicrosoftMicrosoft SQL ServerSQL Server can have an identifier. 서버, 데이터베이스 그리고 테이블, 뷰, 열, 인덱스, 트리거, 프로시저, 제약 조건, 규칙 등과 같은 데이터베이스 개체도 식별자를 가질 수 있습니다.Servers, databases, and database objects, such as tables, views, columns, indexes, triggers, procedures, constraints, and rules, can have identifiers. 식별자는 대부분의 개체에서 필수 항목이지만 제약 조건과 같은 일부 개체에서는 옵션입니다.Identifiers are required for most objects, but are optional for some objects such as constraints.

개체의 식별자는 개체를 정의할 때 만들어집니다.An object identifier is created when the object is defined. 만들어진 식별자는 개체를 참조하는 데 사용됩니다.The identifier is then used to reference the object. 예를 들어 다음 문은 식별자가 TableX인 테이블과 식별자가 KeyColDescription인 두 열을 만듭니다.For example, the following statement creates a table with the identifier TableX, and two columns with the identifiers KeyCol and Description:

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

이 테이블에는 이름 없는 제약 조건도 있습니다.This table also has an unnamed constraint. PRIMARY KEY 제약 조건에는 식별자가 없습니다.The PRIMARY KEY constraint has no identifier.

식별자의 데이터 정렬은 식별자가 정의된 수준에 따라 달라집니다.The collation of an identifier depends on the level at which it is defined. 로그인과 데이터베이스 이름 등 인스턴스 수준 개체의 식별자에는 인스턴스의 기본 데이터 정렬이 할당됩니다.Identifiers of instance-level objects, such as logins and database names, are assigned the default collation of the instance. 테이블, 뷰, 열 이름 등 데이터베이스에 있는 개체의 식별자에는 데이터베이스의 기본 데이터 정렬이 할당됩니다.Identifiers of objects in a database, such as tables, views, and column names, are assigned the default collation of the database. 예를 들어 대/소문자만 다르고 이름은 동일한 두 테이블은 데이터 정렬이 대/소문자를 구분하는 데이터베이스에서는 만들 수 있지만 데이터 정렬이 대/소문자를 구분하지 않는 데이터베이스에서는 만들 수 없습니다.For example, two tables with names that differ only in case can be created in a database that has case-sensitive collation, but cannot be created in a database that has case-insensitive collation.

참고

변수의 이름 또는 함수와 저장 프로시저의 매개 변수는 Transact-SQLTransact-SQL 식별자의 규칙을 따라야 합니다.The names of variables, or the parameters of functions and stored procedures must comply with the rules for Transact-SQLTransact-SQL identifiers.

식별자 클래스Classes of Identifiers

다음과 같이 두 가지 식별자 클래스가 있습니다.There are two classes of identifiers:

일반 식별자Regular identifiers
식별자 형식에 대한 규칙을 따릅니다.Comply with the rules for the format of identifiers. 일반 식별자는 Transact-SQLTransact-SQL 문에 사용될 때 구분되지 않습니다.Regular identifiers are not delimited when they are used in Transact-SQLTransact-SQL statements.

SELECT *  
FROM TableX  
WHERE KeyCol = 124  

구분 식별자Delimited identifiers
큰따옴표(")나 대괄호([])로 묶여져 있습니다.Are enclosed in double quotation marks (") or brackets ([ ]). 식별자 형식 규칙을 따르는 식별자는 구분되지 않을 수도 있습니다.Identifiers that comply with the rules for the format of identifiers might not be delimited. 예를 들어For example:

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

모든 식별자 규칙을 따르지 않는 식별자는 Transact-SQLTransact-SQL 문에서 구분되어야 합니다.Identifiers that do not comply with all the rules for identifiers must be delimited in a Transact-SQLTransact-SQL statement. 예를 들어For example:

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

일반 식별자 및 구분 식별자 모두는 1-128자의 문자로 이루어져야 합니다.Both regular and delimited identifiers must contain from 1 through 128 characters. 로컬 임시 테이블의 경우에는 식별자에 116자까지 포함할 수 있습니다.For local temporary tables, the identifier can have a maximum of 116 characters.

일반 식별자 규칙Rules for Regular Identifiers

변수, 함수 및 저장 프로시저의 이름은 Transact-SQLTransact-SQL 식별자의 다음 규칙을 따라야 합니다.The names of variables, functions, and stored procedures must comply with the following rules for Transact-SQLTransact-SQL identifiers.

  1. 첫 문자는 다음 중 하나여야 합니다.The first character must be one of the following:

    • Unicode Standard 3.2에서 정의한 문자.A letter as defined by the Unicode Standard 3.2. 문자의 유니코드 정의에는 a-z, A-Z의 라틴어 문자와 다른 언어의 문자가 포함되어 있습니다.The Unicode definition of letters includes Latin characters from a through z, from A through Z, and also letter characters from other languages.

    • 밑줄(), at 기호(@) 또는 숫자 기호(#)The underscore (), at sign (@), or number sign (#).

      특정 기호는 SQL ServerSQL Server에서 식별자의 맨 앞에 올 때 특별한 의미를 갖습니다.Certain symbols at the beginning of an identifier have special meaning in SQL ServerSQL Server. at 기호로 시작하는 일반 식별자는 항상 지역 변수나 매개 변수를 표시하며 다른 개체 유형의 이름으로 사용할 수 없습니다.A regular identifier that starts with the at sign always denotes a local variable or parameter and cannot be used as the name of any other type of object. # 기호로 시작하는 식별자는 임시 테이블 또는 프로시저를 나타냅니다.An identifier that starts with a number sign denotes a temporary table or procedure. 이중 숫자 기호(##)로 시작하는 식별자는 전역 임시 개체를 나타냅니다.An identifier that starts with double number signs (##) denotes a global temporary object. 숫자 기호나 이중 숫자 기호를 사용하여 다른 개체 유형의 이름을 시작할 수 있지만 이 방법은 사용하지 않는 것이 좋습니다.Although the number sign or double number sign characters can be used to begin the names of other types of objects, we do not recommend this practice.

      일부 Transact-SQLTransact-SQL 함수는 두 개의 at 기호(@@)로 시작하는 이름을 사용합니다.Some Transact-SQLTransact-SQL functions have names that start with double at signs (@@). 이러한 함수와 혼동하지 않도록 @@으로 시작하는 이름을 사용하지 않아야 합니다.To avoid confusion with these functions, you should not use names that start with @@.

  2. 후속 문자는 다음을 포함할 수 있습니다.Subsequent characters can include the following:

    • Unicode Standard 3.2에서 정의한 문자Letters as defined in the Unicode Standard 3.2.

    • 기본 라틴 또는 기타 국가 스크립트의 10진수Decimal numbers from either Basic Latin or other national scripts.

    • at 기호(@), 달러 기호($), 숫자 기호 또는 밑줄The at sign, dollar sign ($), number sign, or underscore.

  3. Transact-SQLTransact-SQL 예약어는 식별자로 사용할 수 없습니다.The identifier must not be a Transact-SQLTransact-SQL reserved word. SQL ServerSQL Server 에서 예약어는 대문자와 소문자가 모두 예약됩니다. reserves both the uppercase and lowercase versions of reserved words. Transact-SQLTransact-SQL 문에서 식별자를 사용하는 경우 이러한 규칙을 따르지 않는 식별자는 큰따옴표나 대괄호로 구분해야 합니다.When identifiers are used in Transact-SQLTransact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets. 예약되는 단어는 데이터베이스 호환성 수준에 따라 다릅니다.The words that are reserved depend on the database compatibility level. 이 수준은 ALTER DATABASE 문을 사용하여 설정할 수 있습니다.This level can be set by using the ALTER DATABASE statement.

  4. 포함된 공백이나 특수 문자는 사용할 수 없습니다.Embedded spaces or special characters are not allowed.

  5. 보충 문자도 사용할 수 없습니다.Supplementary characters are not allowed.

    Transact-SQLTransact-SQL 문에서 식별자를 사용하는 경우 이러한 규칙을 따르지 않는 식별자는 큰따옴표나 대괄호로 구분해야 합니다.When identifiers are used in Transact-SQLTransact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets.

참고

일반 식별자 형식의 일부 규칙은 데이터베이스 호환성 수준에 따라 달라집니다.Some rules for the format of regular identifiers depend on the database compatibility level. 이 수준은 ALTER DATABASE를 사용하여 설정할 수 있습니다.This level can be set by using ALTER DATABASE.

참고 항목See Also

ALTER TABLE(Transact-SQL) ALTER TABLE (Transact-SQL)
CREATE DATABASE(SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
CREATE DEFAULT(Transact-SQL) CREATE DEFAULT (Transact-SQL)
CREATE PROCEDURE(Transact-SQL) CREATE PROCEDURE (Transact-SQL)
CREATE RULE(Transact-SQL) CREATE RULE (Transact-SQL)
CREATE TABLE(Transact-SQL) CREATE TABLE (Transact-SQL)
CREATE TRIGGER(Transact-SQL) CREATE TRIGGER (Transact-SQL)
CREATE VIEW(Transact-SQL) CREATE VIEW (Transact-SQL)
DECLARE @local_variable(Transact-SQL) DECLARE @local_variable (Transact-SQL)
DELETE(Transact-SQL) DELETE (Transact-SQL)
INSERT(Transact-SQL) INSERT (Transact-SQL)
예약 키워드(Transact-SQL) Reserved Keywords (Transact-SQL)
SELECT(Transact-SQL) SELECT (Transact-SQL)
UPDATE(Transact-SQL) UPDATE (Transact-SQL)