다음을 통해 공유


데이터베이스 식별자

데이터베이스 개체 이름을 식별자라고 합니다. Microsoft SQL Server의 모든 항목에는 식별자가 있을 수 있습니다. 테이블, 뷰, 열, 인덱스, 트리거, 프로시저, 제약 조건 및 규칙과 같은 서버, 데이터베이스 및 데이터베이스 개체에는 식별자가 있을 수 있습니다. 식별자는 대부분의 개체에 필요하지만 제약 조건과 같은 일부 개체에는 선택 사항입니다.

개체 식별자는 개체가 정의되면 만들어집니다. 그런 다음 식별자를 사용하여 개체를 참조합니다. 예를 들어 다음 문은 식별자가 있는 테이블과 식별자가 TableXKeyCol 있는 두 개의 열을 만듭니다.Description

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

이 테이블에는 명명되지 않은 제약 조건도 있습니다. PRIMARY KEY 제약 조건에 식별자가 없습니다.

식별자의 데이터 정렬은 정의된 수준에 따라 달라집니다. 로그인과 데이터베이스 이름 등 인스턴스 수준 개체의 식별자에는 인스턴스의 기본 데이터 정렬이 할당됩니다. 테이블, 뷰 및 열 이름과 같은 데이터베이스의 개체 식별자에는 데이터베이스의 기본 데이터 정렬이 할당됩니다. 예를 들어, 이름이 대소문자만 다른 두 테이블을 대소문자 구분 정렬 규칙을 사용하는 데이터베이스에서는 만들 수 있지만, 대소문자 구분하지 않는 정렬 규칙을 사용하는 데이터베이스에서는 만들 수 없습니다.

비고

변수 이름 또는 함수 및 저장 프로시저의 매개 변수는 Transact-SQL 식별자에 대한 규칙을 준수해야 합니다.

식별자 클래스

식별자의 두 가지 클래스가 있습니다.

일반 식별자
식별자 형식에 대한 규칙을 준수합니다. 일반 식별자는 Transact-SQL 문에서 사용될 때 구분되지 않습니다.

SELECT *  
FROM TableX  
WHERE KeyCol = 124  

구분된 식별자
큰따옴표(") 또는 대괄호([ ])로 묶습니다. 식별자 형식에 대한 규칙을 준수하는 식별자는 구분되지 않을 수 있습니다. 다음은 그 예입니다.

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

식별자에 대한 모든 규칙을 준수하지 않는 식별자는 Transact-SQL 문으로 구분되어야 합니다. 다음은 그 예입니다.

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

일반 및 구분 식별자 모두 1~128자를 포함해야 합니다. 로컬 임시 테이블의 경우 식별자는 최대 116자를 가질 수 있습니다.

일반 식별자에 대한 규칙

변수, 함수 및 저장 프로시저의 이름은 Transact-SQL 식별자에 대해 다음 규칙을 준수해야 합니다.

  1. 첫 번째 문자는 다음 중 하나여야 합니다.

    • 유니코드 표준 3.2에 정의된 문자입니다. 문자의 유니코드 정의에는 A에서 Z까지의 라틴 문자와 다른 언어의 문자 문자가 포함됩니다.

    • 밑줄(_), 기호(@) 또는 숫자 기호(#)입니다.

      식별자의 시작 부분에 있는 특정 기호는 SQL Server에서 특별한 의미를 갖습니다. at 기호로 시작하는 일반 식별자는 항상 지역 변수 또는 매개 변수를 표시하며 다른 개체 형식의 이름으로 사용할 수 없습니다. 숫자 기호로 시작하는 식별자는 임시 테이블 또는 프로시저를 나타냅니다. 이중 숫자 기호(##)로 시작하는 식별자는 전역 임시 개체를 나타냅니다. 숫자 기호 또는 이중 숫자 기호 문자를 사용하여 다른 형식의 개체 이름을 시작할 수 있지만 이 방법은 사용하지 않는 것이 좋습니다.

      일부 Transact-SQL 함수에는 이중 기호(@@)로 시작하는 이름이 있습니다. 이러한 함수와의 혼동을 방지하려면 @@로 시작하는 이름을 사용하면 안 됩니다.

  2. 후속 문자에는 다음이 포함될 수 있습니다.

    • 유니코드 표준 3.2에 정의된 문자입니다.

    • 기본 라틴어 또는 기타 국가별 스크립트의 10진수입니다.

    • at 기호, 달러 기호($), 숫자 기호 또는 밑줄입니다.

  3. 식별자는 Transact-SQL 예약어가 아니어야 합니다. SQL Server는 예약어의 대문자 및 소문자 버전을 모두 예약합니다. Transact-SQL 문에 식별자를 사용하는 경우 이러한 규칙을 준수하지 않는 식별자는 큰따옴표 또는 대괄호로 구분되어야 합니다. 예약된 단어는 데이터베이스 호환성 수준에 따라 달라집니다. 이 수준은 ALTER DATABASE 문을 사용하여 설정할 수 있습니다.

  4. 포함된 공백 또는 특수 문자는 허용되지 않습니다.

  5. 보조 문자는 허용되지 않습니다.

Transact-SQL 문에 식별자를 사용하는 경우 이러한 규칙을 준수하지 않는 식별자는 큰따옴표 또는 대괄호로 구분되어야 합니다.

비고

일반 식별자 형식에 대한 일부 규칙은 데이터베이스 호환성 수준에 따라 달라집니다. 이 수준은 ALTER DATABASE를 사용하여 설정할 수 있습니다.

또한 참조하십시오

ALTER TABLE(Transact-SQL)
CREATE DATABASE(SQL Server Transact-SQL)
CREATE DEFAULT(Transact-SQL)
CREATE PROCEDURE(Transact-SQL)
규칙 생성(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)
예약 키워드(Transact-SQL)
SELECT(Transact-SQL)
UPDATE(Transact-SQL)