daily-story
mybatis sqlserver NVarcharTypeHandler 설정
프로그래밍 2024. 1. 4. 12:36

mssql 데이터 입력 시 varchar로 컬럼을 만들었더니 특수문자가 물음표로 표시되는 오류가 발생했다. 그래서 컬럼을 nvarchar로 변경하고 insert/update 시 nvarchar로 수정하려고 봤더니 그냥은 안 된단다. 우선 NVarchar 타입 핸들러를 만든다. package com.iems.config; import ch.qos.logback.classic.db.names.ColumnName; import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.MappedJdbcTypes; import org.slf4j.Logger; import o..

[mssql] TDE 암호화 적용된 DB 백업파일 복원
프로그래밍 2014. 12. 11. 21:35

오늘 업무 중 아무생각없이 올해 초에 TDE 암호화를 적용한 것을 까먹고 습관처럼 운영서버 DB를 백업(backup)을 받아 개발서버에 복원(restore)을 시도하다 에러메세지가 떴다. 제목: Microsoft SQL Server Management Studio ------------------------------ Transact-SQL 문 또는 일괄 처리를 실행하는 동안 예외가 발생했습니다. (Microsoft.SqlServer.ConnectionInfo) ------------------------------ 추가 정보: 지문이 '0xC4A17EA1163269F402BAF91553DAB2EFAA38C76F'인 서버 인증서을(를) 찾을 수 없습니다. RESTORE FILELIST이(가) 비정상적으로..

[mssql] update join
프로그래밍 2014. 9. 23. 09:38

update tableA set col = B.col from tableA as A WITH (NOLOCK) inner join tableB as B WITH (NOLOCK) on ... where ...

[mssql] PK삭제/추가, 컬럼 수정
프로그래밍 2014. 1. 29. 17:07

가끔.. 개발 일을 하다보면.. PK가 잘못잡혀있다던가 컬럼의 속성이 이상하다던가 할 때가 종종 있다. 초기 개발자의 의도를 모를정도로 PK가 이상하게 잡혀있다던가 꼭 설정되어야 할것같은게 빠져있다던가.. PK수정(이라고 쓰고 삭제 후 추가라고 읽는다)을 위해서는 아래와 같이 진행하면 된다. -- PK 삭제 alter table DBNAME.dbo.TABLENAME drop PK_TABLENAME go select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where TABLE_NAME = 'TABLENAME' -- 컬럼 수정 alter table DBNAME.dbo.TABLENAME alter column COLUMN_NAME1 varchar(4) not null; -..

article thumbnail
[mssql] nvarchar & varchar
프로그래밍 2013. 8. 6. 10:31

오라클만 사용하다가 MSSQL로 넘어오니 헷갈리는게 많네요. 데이터 타입부터 기본 함수까지.. 이번에는 nvarchar와 varchar의 차이점에 대해서 알아보겠습니다. nvarchar 가변 유니코드 문자열 varchar 가변 문자열 개발시 유니코드를 사용해야 한다면 nvarchar를 사용해야합니다. varchar의 경우는 영어/숫자는 1byte로 저장을 하지만 nvarchar의 경우는 모든 문자를 2byte로 저장합니다. declare @varchar varchar(7) declare @nvarchar nvarchar(7) set @varchar = '테스트중입니다' set @nvarchar = '테스트중입니다' select @varchar as varchar , @nvarchar as nvarchar..

[mssql] 테이블 복사
프로그래밍 2011. 5. 12. 11:21

※ 테이블을 생성하면서 데이터도 같이 복사 select * into 생성될테이블명 from 원본테이블명 ※ 구조만 복사 select * into 생성될테이블명 from 원본테이블명 where 1=2 ※ 테이블이 있는경우 데이터만 복사 insert into 카피될 테이블명 select * from 원본테이블명 ※ 특정 데이터만 복사 insert into 카피될 테이블명 select * from 원본테이블명 where 조건

[mssql] nolock
프로그래밍 2011. 3. 11. 10:26

보통 SELECT문을 사용할 경우 SELECT A FROM TABLE 처럼 사용한다. 이런식으로 사용할 경우 공유잠금상태이다. 뭔말이고하니 SELECT문을 사용할 경우 INSERT, UPDATE 등의 다른 쿼리는 block이 되며 db의 성능이 저하된다. 이를 피하기 위해 SELECT시 구문 끝에 WITH(NOLOCK)을 사용한다. 각 구문에 적용하기 귀찮거나 프로시져에서는 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 를 프로시져에 넣어주면된다. 참고 >> http://gagastory.tistory.com/150