반응형

MSSQL 133

MSSQL PIVOT AND UNPIVOT

SQL 서버 2000에서 관계형 데이터에 행별로 저장된 값을, 가로 테이블로 된 형식으로 보기 위해서는 CASE문을 써야만 그렇게 볼 수 있었다. 하지만 SQL 서버 2005에서는 PIVOT 연산자를 이용하여 간단히 구현할 수 있다. 한 예로 연도별 판매사원의 매출을 구하는 예제를 보도록 하자. 다음은 SQL 서버 2000 방식으로 구현한 예제다. [코드1]SELECT SalesPersonID ,SUM( case Year(OrderDate) when 2002 then TotalDue else 0 end ) as [2002] ,SUM( case Year(OrderDate) when 2003 then TotalDue else 0 end ) as [2003] ,SUM( case Year(OrderDate) w..

WorkaHolic/MSSQL 2010.04.28

MSSQL 2005 Mirroring 설정

MSSQL 2005 Mirroring 설정 작성자 : 개발팀 정성학 이메일 : hakburi@naver.com 1. Mirroring 개요 데이터베이스 미러링은 데이터베이스의 가용성을 높여 주는 주요 소프트웨어 솔루션입니다. 미러링은 데이터베이스 단위로 구현되며 전체 복구 모델을 사용하는 데이터베이스에서만 작동합니다. 단순 복구 모델 및 대량 로그 복구 모델에서는 데이터베이스 미러링이 지원되지 않습니다. 데이터베이스 미러링은 상시 대기 서버를 유지함으로써 작동합니다. 일반적인 미러링 세션 중 프로덕션 서버에 문제가 발생하면 클라이언트 응용 프로그램에서 대기 서버에 다시 연결하여 빠르게 복구할 수 있습니다. (참고 : master, msdb, tempdb 또는 model 데이터베이스는 미러링할 수 없습니다..

WorkaHolic/MSSQL 2010.04.26

MSSQL2005 - try.. catch를 이용한 에러 모니터링

개발 과정이나 서비스 중에 있는 데이터베이스에서 발생하는 에러를 테이블로 관리하여 실시간 집계 및 분석을 위한 스크립트이며 AdventureWorks 에 있는 sp 를 수정하였습니다. ^^ /*------------------------------------------------------------ title : MS-SQL2005 - Try Catch를통한구조화된에러처리 description : error log를테이블로관리하여보여주자. SQL2000 에서사용하는에러처리는모든구문마다@@error 를받아서처리해주고 goto 문을사용하는등구조적이지못한방법으로처리했는데 SQL2005에사용되는try ..catch 문으로에러처리를할수있게되었습니다. 트랜젝션을사용하는경우XACT_STATE() 함수를이용하여처리하..

WorkaHolic/MSSQL 2010.04.26

Microsoft Access functions vs SQL Server functions

chr$(x) char(x) asc(x) ascii(x) str$(x) str(x) space$(x) space(x) lcase$(x) lower(x) ucase$(x) upper(x) len(x) datalength(x) ltrim$(x) ltrim(x) rtrim$(x) rtrim(x) right$(x,y) right(x,y) mid$(x,y,z) substring(x,y,z) - ACCESS 에는 Replace 함수가 있으나 Query 에서는 사용할 수 없다. - SQL 에서는 문자열 연결에 '+' 를 사용하지만 ACCESS 에서는 '&' 를 사용!! cint(x) convert(smallint,x) clng(x) c..

WorkaHolic 2010.04.23

MSSQL 테이블의 컬럼에는 주석을 달아라

[좋은 개발자로 가는 길] 테이블의 컬럼에는 주석을 달아라 2009.3.11 한용희 DB 테이블을 설계하여 DB에 실제 물리적인 구현을 할때, 보통 설명이나 주석은 달지 않는 경우가 많다. 하지만, Microsodt SQL Server도 그렇고 Oracle도 그렇고 대부분의 DB에는 테이블의 컬럼에 주석을 넣을 수 있는 기능이 있다. 이곳에 그 컬럼에 대한 설명이나 내용을 적어 두면 나중에 테이블에 대한 논리적인 모델을 참조하지 않고서도 간략하게 이 테이블이 뭐고 이 컬럼이 무엇을 의미하는지 알아낼 수 있다. 특히 비영어권 국가인 한국에서는 컬럼명을 대부분 영어로 기술하기 때문에 이 컬럼이 무엇을 의미하는지 직관적으로 와 닿지 않는 경우가 있다. 따라서 이러한 주석을 적극적으로 활용하는 것이 좋은 방법이..

WorkaHolic/ORACLE 2010.04.08

MSSQL 500만건 랜덤 데이타 생성하기

1. 500만건 데이타 만들기 -- 테이블 생성 CREATE TABLE random_data ( col1 int PRIMARY KEY IDENTITY(10,10) NOT NULL, col2 int NOT NULL DEFAULT CASE -- Random integer between -9999 and +9999 WHEN CONVERT(int, RAND() * 1000) % 2 = 1 THEN (CONVERT(int, RAND() * 100000) % 10000 * -1 ) ELSE CONVERT(int, RAND() * 100000) % 10000 END, col3 char(15) NOT NULL DEFAULT CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65) -- 65 ..

WorkaHolic/MSSQL 2010.04.08
반응형