본문 바로가기

공부/Ms-sql3

MSSQL DB 오프라인 계속 안될 때 서론 sql management studio 로 UI상에서 오프라인을 하게 되면 이상하게 잘 안될 때가 많다. 왜냐하면 트랙잭션을 안 죽이고 명령어를 때렸기 때문에 완료 될 때까지 진행이 되질 않는다. 데이터베이스 '***'이(가) 전환중입니다. 나중에 문을 실행하십시오 (오류: 952) 라는 식으로 오류도 발생하여 DB이용 자체가 불가능하다. 락이 걸려있기 때문에 온라인도 안될 것이다. 4일이 지나도 오프라인이 안 되길래 구글링을 해도 DB에 락이 걸려서 대부분의 명령어가 먹히질 않았다. 어쩌다 수상한게 보여서 그걸 찾아보니 문제가 보였는데 다른 분들도 도움 되시길 본론 sp_help sp helpdb 데이터베이스 '***'이(가) 전환중입니다. 나중에 문을 실행하십시오 (오류: 952) DB ID를 .. 2018. 12. 11.
mssql 대용량 INSERT 구문, 10000건 정도 서론 오라클에서는 nologgin 이랑 힌트로 insert select 할 시에 사용하면 되었는데 mssql은 뭘해야 될지 몰랐다. 그래서 검색해보니 그냥 아래와 같이 하면 될 것 같다. 10만건 넘어가면 굳이 안해도 될 것 같다. 본론 tablock insert into mssql.스키마.dbo.테이블명 with(tablock) select * from 테이블명 with(nolock) 아래는 굳이 nolock은 안해도 될 것 같고 insert할 테이블에 talock 옵션만 걸면 아예 로그를 안 쌓는건 아니고 최소한의 로그를 쌓기 때문에 좀 더 빨리 insert가 가능해진다. dblink가 걸린 상태에서 다른 DB에서 동일 테이블을 만들고 insert를 해야하는 경우에 만건 정도 테이블이면 그래도 빨리 .. 2018. 12. 7.
MSSQL - SQLSTATE = 22007 서론 보통은 날짜를 날짜형 데이터 타입으로 저장하기 때문에 이런 오류를 볼 경우가 적지만 날짜를 문자형으로 처리하는 곳도 있다. 이때 문자형을 날짜형으로 CONVERT 안해주고 단순히 문자로 범위를 넣어 조회를 하면 MSSQL에서 자동으로 CONVERT를 하여 조회하게 되는데 이때 문자형을 날짜형으로 변경하다 생기는 문제 이다. 본론 SQLSTATE = 22007 프로그램 사용시 해당 오류가 뜨면서 조회가 안되는 경우도 있는데 원인은 문자형을 날짜형으로 변경하는 도중 비정상적인 날짜가 포함되어 있어 발생하는 현상이다. 비정상적인 날짜를 찾아 변경해 주면된다. SELECT AA, BB FROM ( SELECT ISDATE(LAST_END_DT) AS AA, LAST_END_DT AS BB FROM TABL.. 2018. 6. 14.