로그를 정리하는 것이기 때문에 여분에 하드디스크가 있다면 서버를 중지 시키고 파일을 백업해두길 바란다. 이 명령어를 수행하면 기존에 수행되었던 로그들을 모두 삭제되기 때문에 발생할 수 있는 문제를 잘 생각해보고 실행하는 것을 권유해 본다. 1. 현재 복구 모델 확인 후 적어 놓는다(FULL이 나왔다) SELECT DATABASEPROPERTYEX('DatabaseName','RECOVERY') 2. 복구모델을 simple로 변경하고 ALTER DATABASE someDataBaseName SET RECOVERY SIMPLE; 3. 로그를 정리한다 (초기값이 50MB로 변경된다.) DBCC SHRINKDATABASE( someDataBaseName ); 4. 위에 적어둔 모델 값을 원래 복구 모델로 저장한..
두 개의 테이블 정보를 Where 조건으로 사용하기위해서 쿼리를 작성해보자. Table Order (Idx, 주문자, 합계금액, 주문날짜, ) Table Order_Product (idx, 상품명, 상품가격) Table B에 상품명을 변경하고자 한다. 주문날짜를 조건으로 오늘주문 받은 날짜만 변경하고자 한다면 아래와 같이 작성하면 된다. [쿼리 작성 예] update O set 상품명 = '볼펜' from Order O join Order_Product P on O.Idx = P.Idx -- ( 두 테이블에 같은 컬럼을 연결하면 된다.) where 주문날자 = '2011-09-16' 위와 같이 작성하여 변경하면 될 것 같다.
데이터베이스 파일을 연결 작업하는 중에 오류가 발생하였다. 로그파일을 읽는 도중 오류가 발생하여 방법을 찾아보던 중 로그파일(ldf)파일을 재생성하여 등록 하는 방법이 있어 소개 하려한다. 예제) Test.mdf, Test_log.ldf 이 두 파일로 예를 들겠다 1. Sql Management 실행 시키고 mdf파일 경로를 복사해두자. 데이터베이스명 : Test (C:\파일경로\Test.mdf) 2. 새 쿼리 창을 하나 연다 Exec sp_attach_single_file_db 'Test', 'c:\파일경로\Test.mdf' 위 명령어를 입력한 후 실행(F5)한다. 그럼 아래 실행 창이 보일 것이다. 100프로 복원이 될거라고 장담은 못한다. 필자는 포맷된 컴퓨터에 데이터베이스 파일을 가지고 한 작업이..
(CASE WHEN CHARINDEX('오후',date(컬럼명))>0 THEN DATEADD(HOUR,12,CONVERT DATETIME,REPLACE(date(컬럼명),'오후',''))) WHEN CHARINDEX('오전', date(컬럼명))>0 THEN CONVERT(DATETIME,REPLACE(date(컬럼명),'오전','')) END) >= convert(datetime, '2011-06-01 오후 15:00:00') AND (CASE WHEN CHARINDEX('오후', date(컬럼명))>0 THEN DATEADD(HOUR,12,CONVERT(DATETIME,REPLACE(date(컬럼명),'오후',''))) WHEN CHARINDEX('오전', date(컬럼명))>0 THEN CONVER..
이 SQL 스크립트는 SQL 서버 2000에서 작동하는 사용자 정의 함수이다. SQL 서버에서 새로운 사용자 정의 함수를 등록한 후 사용하면 된다. 이 스크립트는 파라미터로 넘긴 날짜의 바로 이전 달 마지막 날짜를 알려 준다. 만일 오늘 날짜가 2004년 4월 20일이라면, select dbo.LastDayofPreviousMonth(getdate()) --결과 2004-03-31 00:00:00.000 select dbo.LastDayofPreviousMonth('01/12/2004') --결과 2003-12-31 00:00:00.000 select dbo.LastDayofPreviousMonth('03/04/2004') --결과 2004-02-29 00:00:00.000 이 SQL 스크립트 소스 코드..
제가 convert(varchar(혹은 char),regdate,112)='20110303' 같은 방식으로 날짜를 비교해서 처리하는 경우가 많았습니다. group by를 쓸 때도 마찬가지구요. 근데 별로 느릴 거 같지 않은 쿼리가 느리기에 혹시나 하고 year(regdate)+right('0'+month(regdate),2) 이런 식으로 바꿨더니 속도가 확~ 빨라지네요. 9~11초 걸리던 쿼리가 1초로 바뀌네요. 출처 : http://youngsam.kr/
전역변수 시스템에서 미리 정의되고 관리된다.| - SQL서버가 시작된 이후의 시스템 활동 상황이나 접속에 관한에 대해 알려주는 역할을 한다. - sp_monitor를 사용해서 변수의 내용을 검색할 수 있다 전역변수 명과 그에 따르는 설명입니다. @@CONNECTIONS SQL서버가 시작된 후에 로그인하거나 로그인 시도를 한 횟수 @@CPU_BUSY SQL서버가 시작된 후에 서버가 사용한 CPU시간 @@CURSOR_ROWS 마지막으로 열린 커서에서의 행의 개수 @@DBTS 데이타베이스의 현재 timestamp자료형의 값 @@ERROR 사용자 접속에대해 시스템이 발생시킨 마지막 오류 번호 @@FETCH_STATUS 커서 FETCH명령의 상태 @@IDENTITY 마지막으로 삽입된 IDENTITY값 @@IDLE..
안녕하세요? 지난 번에 이어 마지막으로 세 번째 Function 비교 시간입니다. MSSQL 2005, Oracle 9i 기준입니다. 20. 지금(Right Now) 가져오기 구분 MSSQL Oracle 함수 GETDATE() SYSDATE 용례 SELECT GETDATE() SELECT SYSDATE FROM DUAL; 결과 2010-11-07 11:50:08.700 2010/11/07 11:50:09 è MSSQL 2008에서는 “SYSDATETIME()” 을 통해서 더 상세하게 사용이 가능합니다.(DATETIME2) SELECT SYSDATETIME() -- 결과 2010-11-07 11:52:25.9900000 21. 일자 더하기 / 빼기 구분 MSSQL Oracle 함수 DATEADD + / -..