[MSSQL] varbinary 타입 사용

728x90
반응형

 


 

MSSQL을 이용해서 binary 데이터를 저장해야 하는 경우가 종종 있습니다.

데이터 량이 많은 대신, 크게 가변적이지 않고, 조회이슈가 적은 경우에 한해서 저는 간혹 binary 데이터를 이용해서 저장을 합니다.

 

 

 

 

varbinary란?

varbinary [(n | max)] 가변 길이 이진 데이터입니다. n 은 1부터 8000 사이의 값이 될 수 있습니다. max 는 최대 스토리지 크기가 2^31-1바이트임을 나타냅니다. 스토리지 크기는 입력된 실제 데이터 길이에 2바이트를 더한 값입니다. 입력된 데이터의 길이가 0바이트일 수 있습니다.

 

 

 

 

테이블

CREATE TABLE [dbo].[TEST] (
    [Idx]               INT                          NOT NULL,
    [CustomData]        VARBINARY(MAX)               NULL,
    [RegDate]           DATETIME DEFAULT (GETDATE()) NOT NULL,
);

테이블의 형태는 VARBINARY 형태로 저장합니다.

 

 

 

 

 

 

C#에서의 Binary 데이터 이용

// Insert/Update 시
string CustomData = "여러가지 형태의 데이터";
byte[] customBytes = Encoding.UTF8.GetBytes(CustomData);



//Dapper 이용시
var p = new DynamicParameters();
p.Add("@idx", idx, dbType: DbType.Int32);
p.Add("@custom", custom, dbType: DbType.Binary);


// Select 시
string Custom = Encoding.UTF8.GetString(CustomData);

 

 

주로 binary 데이터에 저장을 위해서 byte[] 형태로 저장을 하기 때문에,

간단히 C#을 이용해서 데이터가 저장되고 조회되는 과정을 간단하게 정리하였습니다.

 

 

 

 

 

 

 

 

 

 

728x90