적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric
의 SQL 분석 엔드포인트Microsoft Fabric
의 웨어하우스Microsoft Fabric의 SQL 데이터베이스
고정 길이 또는 가변 길이의 이진 데이터 형식입니다.
Arguments
이진 [ ( n ) ]
길이가 n바이트인 고정 길이의 이진 데이터입니다. 여기서 n은 1부터 8,000까지의 값입니다. 스토리지 크기는 n 바이트입니다.
변반 [ ( n | max ) ]
가변 길이 이진 데이터입니다. n은 1부터 8000 사이의 값이 될 수 있습니다. max는 최대 스토리지 크기가 2^31-1바이트임을 나타냅니다. 스토리지 크기는 입력된 실제 데이터 길이에 2바이트를 더한 값입니다. 입력된 데이터의 길이가 0바이트일 수 있습니다. varbinary의 ANSI SQL 동의어는 binary varying입니다.
Remarks
데이터 정의나 변수 선언문에서 n을 지정하지 않은 경우 기본 길이는 1입니다.
함수에 CAST을 지정하지 않은 경우 기본 길이는 30입니다.
| 데이터 형식 | 사용 시기... |
|---|---|
| binary | 열 데이터 항목의 크기가 일관적입니다. |
| varbinary | 열 데이터 항목의 크기가 상당히 다릅니다. |
| varbinary(max) | 열 데이터 항목이 8,000바이트를 초과합니다. |
binary 및 varbinary 데이터 변환
문자열 데이터 형식에서 길이가 다른 binary 또는 varbinary 데이터 형식으로 데이터를 변환하면 SQL Server는 오른쪽의 데이터를 패딩하거나 자릅니다. 문자열 데이터 형식은 다음과 같습니다.
- char
- varchar
- nchar
- nvarchar
- binary
- varbinary
- text
- ntext
- image
다른 데이터 형식을 binary 또는 varbinary로 변환하면 데이터의 왼쪽이 패딩되거나 잘립니다. 패딩은 16진수 0을 사용하여 수행됩니다.
데이터를 binary 및 varbinary 데이터 형식으로 변환하는 것은 binary 데이터가 데이터를 이동하는 가장 쉬운 방법인 경우에 유용합니다. 특정 시점에 값 형식을 충분히 큰 크기의 이진 값으로 변환한 후 다시 이전 형식으로 변환할 수 있습니다. 두 변환이 같은 버전의 SQL Server에서 수행된 경우 이 변환에서는 항상 같은 값이 생성됩니다. 값의 이진 표현은 SQL Server의 버전을 변경합니다.
int, smallint 및 tinyint를 binary 또는 varbinary로 변환할 수 있습니다. 이 진 값을 다시 정수 값으로 변환하면, 절단이 발생했을 때 이 값은 원래 정수 값과 다릅니다. 예를 들어 다음 SELECT 문은 정수 값 123456이 이진 0x0001e240으로 저장됨을 보여 줍니다.
SELECT CAST( 123456 AS BINARY(4) );
그러나 다음 SELECT 문에서 binary 대상이 전체 값을 저장하기에 너무 작으면 동일한 숫자가 0xe240으로 저장되도록 선행 숫자가 자동으로 잘리는 것을 볼 수 있습니다.
SELECT CAST( 123456 AS BINARY(2) );
다음 일괄 처리는 자동 잘림이 오류를 일으키지 않고 산술 연산에 영향을 줄 수 있음을 보여 줍니다.
DECLARE @BinaryVariable2 BINARY(2);
SET @BinaryVariable2 = 123456;
SET @BinaryVariable2 = @BinaryVariable2 + 1;
SELECT CAST( @BinaryVariable2 AS INT);
GO
최종 결과는 57921이 아니라 123457입니다.
Note
모든 데이터 형식과 binary 데이터 형식 간의 변환은 SQL Server의 버전 사이에서 같다고 보장할 수 없습니다.