식별자
업데이트: 2006년 12월 12일
데이터베이스 개체 이름을 그 개체의 식별자라고 합니다. Microsoft SQL Server 2005의 모든 개체에는 식별자가 있습니다. 서버, 데이터베이스 그리고 테이블, 뷰, 열, 인덱스, 트리거, 프로시저, 제약 조건, 규칙 등과 같은 데이터베이스 개체도 식별자를 가질 수 있습니다. 식별자는 대부분의 개체에서 필수 항목이지만 제약 조건과 같은 일부 개체에서는 옵션입니다.
개체의 식별자는 개체를 정의할 때 만들어집니다. 만들어진 식별자는 개체를 참조하는 데 사용됩니다. 예를 들어 다음 문은 식별자가 TableX
인 테이블과 식별자가 KeyCol
및 Description
인 두 열을 만듭니다.
CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80))
이 테이블에는 이름 없는 제약 조건도 있습니다. PRIMARY KEY
제약 조건에는 식별자가 없습니다.
식별자의 데이터 정렬은 식별자가 정의된 수준에 의해 좌우됩니다. 로그인과 데이터베이스 이름 등 인스턴스 수준 개체의 식별자에는 인스턴스의 기본 데이터 정렬이 할당됩니다. 테이블, 뷰, 열 이름 등 데이터베이스에 있는 개체의 식별자에는 데이터베이스의 기본 데이터 정렬이 할당됩니다. 예를 들어 대/소문자만 다르고 이름은 동일한 두 테이블은 데이터 정렬이 대/소문자를 구분하는 데이터베이스에서는 만들 수 있지만 데이터 정렬이 대/소문자를 구분하지 않는 데이터베이스에서는 만들 수 없습니다.
식별자 클래스
다음과 같이 두 가지 식별자 클래스가 있습니다.
일반 식별자
식별자 형식에 대한 규칙을 따릅니다. 일반 식별자는 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자까지 포함할 수 있습니다.
일반 식별자 규칙
일반 식별자 형식 규칙은 데이터베이스 호환성 수준에 따라 달라집니다. 이 수준은 sp_dbcmptlevel을 사용하여 설정할 수 있습니다. 호환성 수준이 90이면 다음 규칙이 적용됩니다.
- 첫 문자는 다음 중 하나여야 합니다.
- 유니코드 표준 3.2에서 정의된 문자. 문자의 유니코드 정의에는 a-z, A-Z의 라틴어 문자와 다른 언어의 문자가 포함되어 있습니다.
- 밑줄(_), at 기호(@) 또는 숫자 기호(#)
특정 기호는 SQL Server에서 식별자의 맨 앞에 올 때 특별한 의미를 갖습니다. at 기호로 시작하는 일반 식별자는 항상 로컬 변수나 매개 변수를 표시하며 다른 개체 유형의 이름으로 사용할 수 없습니다. # 기호로 시작하는 식별자는 임시 테이블 또는 프로시저를 나타냅니다. 이중 숫자 기호(##)로 시작하는 식별자는 전역 임시 개체를 나타냅니다. 숫자 기호나 이중 숫자 기호를 사용하여 다른 개체 유형의 이름을 시작할 수 있지만 이 방법은 사용하지 않는 것이 좋습니다.
일부 Transact-SQL 함수는 두 개의 at 기호(@@)로 시작하는 이름을 사용합니다. 이러한 함수와 혼동하지 않도록 @@로 시작하는 이름을 사용하지 않아야 합니다.
- 후속 문자는 다음을 포함할 수 있습니다.
- 유니코드 표준 3.2에서 정의된 문자
- 기본 라틴 또는 기타 국가 표준 스크립트의 실수
- at 기호(@), 달러 기호($), 숫자 기호 또는 밑줄
- 식별자는 Transact-SQL 예약어가 아니어야 합니다. SQL Server는 예약어의 대문자 버전과 소문자 버전을 모두 예약합니다.
- 중간 공백이나 특수 문자는 사용할 수 없습니다.
- 보충 문자도 사용할 수 없습니다.
Transact-SQL 문에서 식별자를 사용하는 경우 이러한 규칙을 따르지 않는 식별자는 큰따옴표나 대괄호로 구분해야 합니다.
[!참고] 변수 이름과 저장 프로시저 매개 변수 이름은 항상 일반 식별자 규칙을 따라야 합니다.
참고 항목
개념
관련 자료
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)
예약된 키워드(Transact-SQL)
SELECT(Transact-SQL)
UPDATE(Transact-SQL)
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 12월 12일 |
|
2006년 4월 14일 |
|