이번에 작업하면서 이벤트 정보를 varbinary로 아래와 같이 저장하는데
declare @data varbinary(1024)
update event_binary
set data = @data
where id = @id
문제는 @data 값이 0x01020300d209000000 이런식인 경우
막상 저장되는 값은 0x01020300d209
이렇게 되는 것이다.
그래서 한동안 삽질하다가 커뮤니티에 물어보니
SET ANSI_PADDING ON
https://msdn.microsoft.com/ko-kr/library/ms187403.aspx
답변을 받았다
테이블 생성할때 왜 아래와 같이 했는지 이해가 됐다
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'tbl_event]'))
BEGIN
CREATE TABLE [dbo].[tbl_event](
[IDX] [int] NOT NULL,
[Custom] [varbinary](15) NULL,
CONSTRAINT [PK_tbl_event] PRIMARY KEY CLUSTERED
(
[IDX] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID(N'[dbo].[tbl_event]') AND [name] = N'Data')
BEGIN
ALTER TABLE [dbo].[tbl_event] ADD [Data] [varbinary](1024) NULL
END
GO