다음을 통해 공유


uniqueidentifier(Transact-SQL)

16바이트 GUID입니다.

주의

uniqueidentifier 데이터 형식의 열이나 지역 변수는 다음 방법에 따라 값으로 초기화됩니다.

  • NEWID 함수 사용

  • 문자열 상수에서 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 형식으로 변환합니다. 여기서 각 x는 0-9 또는 a-f 범위의 16진수입니다. 예를 들어 6F9619FF-8B86-D011-B42D-00C04FC964FF는 유효한 uniqueidentifier 값입니다.

비교 연산자는 uniqueidentifier 값으로 사용할 수 있습니다. 그러나 순서는 두 값의 비트 패턴을 비교하여 구현되지 않습니다. uniqueidentifier 값에 대해서는 비교(=, <>, <, >, <=, >=) 및 NULL에 대한 확인(IS NULL 및 IS NOT NULL) 연산만 수행할 수 있습니다. 다른 산술 연산자는 사용할 수 없습니다. IDENTITY를 제외한 모든 열 제약 조건과 속성은 uniqueidentifier 데이터 형식에서 사용할 수 있습니다.

구독이 업데이트되는 병합 복제 및 트랜잭션 복제에서는 uniqueidentifier 열을 사용하여 테이블의 여러 복사본에서 행을 고유하게 식별할 수 있습니다.

uniqueidentifier 데이터 변환

uniqueidentifier 형식은 문자 식에서 변환하기 위한 문자 형식으로 간주되므로, 문자 형식으로 변환하기 위한 잘림 규칙이 있습니다. 즉, 문자 식이 다른 크기의 문자 데이터 형식으로 변환되면 새 데이터 형식에 대해 너무 긴 값은 잘립니다. "예" 섹션을 참조하십시오.

다음 예는 uniqueidentifier 값을 char 데이터 형식으로 변환합니다.

DECLARE @myid uniqueidentifier = NEWID();
SELECT CONVERT(char(255), @myid) AS 'char';

다음 예는 변환될 데이터 형식에서 해당 값이 너무 길면 데이터가 잘림을 보여 줍니다. uniqueidentifier 형식은 36자로 제한되므로 길이가 초과된 글자는 잘립니다.

DECLARE @ID nvarchar(max) = N'0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong';
SELECT @ID, CONVERT(uniqueidentifier, @ID) AS TruncatedValue;

결과 집합은 다음과 같습니다.

String                                       TruncatedValue
-------------------------------------------- ------------------------------------
0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong    0E984725-C51C-4BF4-9960-E1C80E27ABA0

(1 row(s) affected)

참고 항목

참조

ALTER TABLE(Transact-SQL)

CAST 및 CONVERT(Transact-SQL)

CREATE TABLE(Transact-SQL)

데이터 형식(Transact-SQL)

DECLARE @local\_variable(Transact-SQL)

NEWID(Transact-SQL)

SET @local\_variable(Transact-SQL)

개념

트랜잭션 복제를 위한 업데이트 가능 구독