본문 바로가기

분류 전체보기

(543)
[SQL Server] UNION을 ORDER BY와 같이 사용할 때 원하는 값 얻기 UNION, UNION ALL을 ORDER BY와 같이 사용할 때 원하는 결과를 얻지 못할 수 있다. 테스트를 위해 테이블을 생성하고 데이터를 삽입하였다. CREATE TABLE dbo.TEST_TBL ( ID INT IDENTITY(1,1) , NAME CHAR(8) , AGE TINYINT , GENDER CHAR(2) , REGDATE DATETIME ) GO INSERT INTO dbo.TEST_TBL VALUES ('김남자', 30, '남', GETDATE()) INSERT INTO dbo.TEST_TBL VALUES ('김여자', 29, '여', GETDATE()) INSERT INTO dbo.TEST_TBL VALUES ('이남자', 35, '남', GETDATE()+1) INSERT INT..
[Windows Server] 윈도우 종료 명령어 - shutdown 윈도우를 종료하는 방법에는 종료 버튼을 클릭하는 방법과 명령어를 사용하는 방법이 있다. 보통은 종료 버튼을 누르는데 예약 종료를 한다거나 어떤 특별한 경우 명령어가 필요할 때가 있다. 나 같은 경우는 한문으로 설정된 서버에서 재부팅해야할 때 명령어를 사용한다. 잘못 눌러서 재부팅이 아닌 종료가 될까봐... 시작 → 실행 → CMD 에서 shutdown 을 입력하면 사용할 수 있는 옵션들을 보여준다. 기본적으로 "shutdown -s -t 시간"으로 사용하며, 시간의 단위는 초이다. shutdown 명령어의 사용예 shutdown -s -t 60 shutdown -r -t 60 shutdown -a shutdown -p 1분 후 시스템 종료 1분 후 시스템 재시작 취소 시스템 즉시 종료
[책 이야기] 사라진 소녀들 - 안드레아스 빙켈만 사라는 등을 대고 누워 부드러운 이불을 턱까지 끌어올리고 팔과 손도 이불 속에 감춘 채 움직이지 않았다. 그리고 가능한 얕은 숨을 쉬며 눈을 감고 온 신경을 귀에 집중했다. 이제 복도가 아주 조용해져서 그 어떤 작은 소리도 들을 수 있었다. 하지만 조용했다. 그런데 누군가 자신을 뚫어지게 쳐다보고 있는 것 같은 느낌은 계속 남아 있었다. 사라의 손은 또다시 침대 위 천장에 매달려 있는 벨을 향했다. 그러나 벨을 잡고 만지작거릴 뿐 누르지는 않았다. 벨이 그곳에 있다는 것만으로는 조금 위안이 되었다. 하지만 또다시 랑에 선생님을 호출하기에는 너무 창피했다. 사라가 가장 좋아하는 랑에 선생님은 사라가 둘러댄 것처럼 그렇게 심각한 두통이 아니라는 것을 이미 눈치챘을 수도 있었다. 그래서 사라는 눈을 감고 이불..
[SQL Server] 테이블 단위 백업 보통 SQL Server는 테이블 백업이 안되는 것으로 알고 있는데 가능하다. 먼저 백업할 테이블이 있는 DB를 선택 후 태스크 → 스크립트 생성 백업하고 싶은 개체 선택 (테이블, 뷰, 저장 프로시저 등...) 백업할 테이블을 선택 스크립팅 옵션 설정에서 고급을 클릭 고급 옵션에서 스크립팅할 테이터 형식을 스키마 및 데이터로 변경한다. (처음엔 스카미로 되어있다.) 스크립트를 저장할 방법을 지정한다. 스크립트 저장 성공 확인 확인해보면 스키마 뿐 아니라 데이터를 저장하는 INSERT 문도 같이 포함된 것을 확인할 수 있다. ※ 100만건의 데이터가 든 테이블을 새 쿼리창에 저장하였을 때 오류가 발생하였다. 하지만 파일로 저장하면 오류 없이 잘 저장된다. 데이터가 많을 때는 파일로 저장하여 백업하자.
[SQL Server] TOP 절에 변수 사용하기 TOP 10 이라고 선언하면 10개의 행만, TOP 15 라고 선언하면 15개의 행만 반환된다. 그렇다면 TOP 절에 변수를 사용할 수 있을까? SQL Server 2005 부터 TOP 절에 변수를 사용할 수 있다. 2000 버전에서 TOP 절에 변수를 사용해보면 오류가 나는 것을 확인할 수 있다. 2005 버전에서 변수를 사용하면 잘 실행된다. 단, TOP (@TOPNUM) 을 선언할 때 ( ) 는 꼭 사용해야 한다. USE PUBS GO DECLARE @TOPNUM INT SET @TOPNUM = 15 SELECT TOP(@TOPNUM) * FROM AUTHORS GO
[SQL Server] SET NOCOUNT ON SET NOCOUNT ON - Transact-SQL 문 또는 저장 프로시저의 영향을 받은 행 수를 나타내는 메시지가 결과 집합의 일부로 반환되지 않도록 한다. SET NOCOUNT 문이 OFF인 상태일 때 SELECT, INSERT, UPDATE, DELETE 의 명령을 실행하면 아래와 같이 영향 받은 행 수를 나타낸다. SET NOCOUNT 문이 ON이면 영향 받은 행 수를 나타내는 메시지가 반환되지 않는다. Transact-SQL 루프가 포함된 프로시저의 경우 SET NOCOUNT를 ON으로 설정하면 네트워크 트래픽이 크게 줄기 때문에 성능이 눈에 띄게 향상된다. 그리고 ON/OFF 둘다 @@ROWCOUNT 함수는 업데이트 된다. 그러므로 프로시저를 생성할 때 습관적으로 SET NOCOUNT ON을..
[SQL Server] 특정 문자열이 포함된 프로시저 찾기 다른 팀에서 자신들의 프로시저를 우리쪽 프로시저 안에서 호출하는지 확인 요청이 왔다. 그 많은 프로시저를 일일이 까보면서 다른 팀의 프로시저를 확인해야 할까... 프로시저 안에서의 프로시저명은 문자열로 취급되고, 아래의 쿼리로 찾을 수 있다. SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_DEFINITION LIKE '%문자열%' ORDER BY ROUTINE_NAME SELECT A.NAME FROM dbo.SYSOBJECTS AS A INNER JOIN dbo.SYSCOMMENTS AS B ON A.ID = B.ID WHERE A.TYPE = 'P' AND B.TEXT LI..
[DW] 차원 모델링 차원모델링에는 점진적으로 변화하는 차원, 시간-날짜 차원, 부모-자식 차원이 있다. 점진적으로 변화하는 차원 (Slowly Changing Dimension) 어떤 제품의 색상을 흰색에서 검정으로 바꿨다. 색상을 바꾸고 난 후의 전략적 의사결정의 성과를 추적하기 위해 그 정보를 차원 테이블에서 계속 유지하기로 했을 때 바뀐 색상 정보를 어떻게 유지하느냐에 따라 다음과 같은 방법이 있다. 1. SCD Type1 - 차원 데이터 변경 이력이 아닌 최종 결과만 유지한다. - 구현하기 쉽고 관리하기 편한 장점이 있다. - 과거 데이터에 대한 추이를 분석할 필요가 없는 상황에서유용하게 사용될 수 있다. 2. SCD Type2 - 변경된 데이터를 새로운 행으로 추가하는 방법을 사용한다. - 이때 키 중복의 문제가 ..