블로그 이미지
baragi76

카테고리

분류 전체보기 (115)
생활 (10)
My Story (34)
My Album (1)
HomePage (0)
Hobbies (21)
Develop (42)
Utility (1)
Project (6)
Statistics Graph
Total232,637
Today14
Yesterday25

공지사항

달력

« » 2019.9
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

 

MS SQL 쿼리 실행 시간 체크...

SET STATISTICS TIME ON

 

 

참조~ : http://technet.microsoft.com/ko-kr/library/ms190287(v=sql.90).aspx

 

 

위 코드를 넣고 Query를 작성하면...

Query를 실행한 시간에 대한 결과치를 보여줌....

 

 SQL Server 실행 시간:
 CPU 시간 = 0밀리초, 경과 시간 = 26밀리초

이 장소를 Daum지도에서 확인해보세요.
서울특별시 중구 소공동 | 서울 중구 을지로1가
도움말 Daum 지도
Posted by baragi76

간단한 코드지만... 헷갈릴때가 많이 있다...

까먹어서 한참을 헤매일때도... ^^


/*

TB_REF 테이블의 REF_COLUMN 컬럼 데이터와 동일한 

TB_TARGET 테이블의 TARGET_COLUMN 컬름이 있으면 해당 레코드 삭제...

*/


DELETE [dbo].[TB_TARGET]

WHERE  TARGET_COLUMN IN (SELECT REF_COLUMN FROM [dbo].[TB_REF] WITH(NOLOCK))



/*

TB_REF 테이블의 모든 값을  

TB_TARGET 테이블에 동일 데이터 삽입 후 ADDFIELD 값을 'Y'로 하여 INSERT

*/


INSERT INTO [dbo].[TB_TARGET]

SELECT REF.*, ADDFIELD='Y'

FROM [dbo].[TB_REF] AS REF WITH(NOLOCK)


Posted by baragi76
컬럼 데이터중...
파일 Path같이 디렉토리 구조라던가 특정 구분자로 나눠져있는 문자열에 대해~
구분자 끝의 문자열을 잘라오고자 한다면...

REVERSE([string]) : 문자열 뒤집기
ex) reverse('012/345/678/9') --> '9/876/543/210'

CHARINDEX([string], [string]) : 문자 위치 찾기
ex) charindex('/', '012/345/678/9') --> 4

SUBSTRING ([string], [intA], [intB]) : 문자의 특정위치 문자 추출 ( [intA]번째 문자부터 [intB]개의 문자만큼 )
ex) substring('012/345/678/9', 4, 5 ) --> '/345/'

LEN([string]) : 문자수
ex) len('012/345/678/9') --> 13


위의 기본 Function을 이용하여 '012/345/678/901.doc' 파일 Path에서 파일명을 추출하면...
아래와 같은 형식인데...

DECLARE @file_path VARCHAR(100)
SET @file_path = '012/345/678/901.doc'
print SUBSTRING( @file_path , (LEN( @file_path ) - CHARINDEX('/', REVERSE@file_path ))+2), LEN( @file_path )) 


결과 : '901 .doc'

다른 더 좋은 방법이 있는지... ^^;;  
Posted by baragi76

### 참조코드...

-- 루프를 돌리기위한 기준
DECLARE DocNo CURSOR FOR
   SELECT IDX
   FROM TB_WD2_FMIT001_BUYINFOBYSTATUS WITH (NOLOCK)
   WHERE EXTENDPROCESS = '' AND SEQNO = ''
   Order by IDX
 DECLARE @docno INT

-- 루프를 돌려 처리~~
 OPEN DocNo
 FETCH DocNo INTO @docno
 WHILE (@@FETCH_STATUS = 0)
 BEGIN 
-- 뺑뺑이 돌리는 코드(시작)   
-- SeqNo 다음 번호 계산
   SET @iSeqNo = @iSeqNo + 1
     
   -- 3자리수로 처리
   SET @vSeqNo = '000' + CONVERT( VARCHAR(10), @iSeqNo)
   SET @vSeqNo = SUBSTRING( @vSeqNo, LEN(@vSeqNo)-2, LEN(@vSeqNo))
   SET @vSeqNo = @vNowMonth + '-' + @vSeqNo
   --PRINT @vSeqNo
     
   SET @tmpQuery = 'UPDATE TB_WD2_FMIT001_BUYINFOBYSTATUS
   SET SEQNO = ''' + @vSeqNo + '''
    EXTENDPROCESS = ''Yes''
   WHERE IDX = ' + CONVERT( VARCHAR, @docno )
   
   print @tmpQuery
         -- EXEC sp_executesql @tmpQuery
-- 뺑뺑이 돌리는 코드(종료)         
   FETCH DocNo INTO @docno
 END
        
 CLOSE DocNo
 DEALLOCATE DocNo

Posted by baragi76

기본적인 데이터 삭제...
DELETE FROM table_name WHERE column_name = 'xx'

만약 테이블에 IDENTITY가 정의되어 있는 상태에서 이 IDENTITY 값을 초기화 하려면?? 보통적으로
TRUNCATE TABLE table_name
으로 초기화를 하는데....
몇개의 테이블에 Relation이 걸려 있다면...
[한글 기준] "FOREIGN KEY 제약 조건에 의해 참조되므로 자를 수 없습니다." 라는 오류 메시지가 발생한다...
이런 경우 IDENTITY 값을 초기화 하려면....

DELETE FROM table1_name
DELETE FROM table2_name
DBCC CHECKIDENT('table1_name', RESEED, 0 )

위와 같이 하면 table1_name 테이블의 IDENTITY 값을 0으로 초기화 한다...

자세한 내용은
http://msdn.microsoft.com/ko-kr/library/ms176057.aspx 참조...
Posted by baragi76
[펌]
수식의 자료형을 변화시킨다.

  - CONVERT(datatype[(length)], expression[,style])

  - 수식이 허용되는 어느 곳에서도 사용 될 수 있다.

 

SELECT CONVERT (char(38), title)+"의 가격은" + CONVERT
(varchar(10), price) +"달라 입니다."
  FROM titles


흠...

다음으로 날짜를... 스타일에 따라 다양하게 보여줍니다.

 

Without
century
(yy)

With
century
(yyyy)



Standard



Input/Output**

-

0 or 100 (*)

Default

mon dd yyyy hh:miAM (or PM)

1

101

USA

mm/dd/yy

2

102

ANSI

yy.mm.dd

3

103

British/French

dd/mm/yy

4

104

German

dd.mm.yy

5

105

Italian

dd-mm-yy

6

106

-

dd mon yy

7

107

-

mon dd, yy

8

108

-

hh:mm:ss

-

9 or 109 (*)

Default + milliseconds

mon dd yyyy hh:mi:ss:mmmAM (or PM)

10

110

USA

mm-dd-yy

11

111

JAPAN

yy/mm/dd

12

112

ISO

yymmdd

-

13 or 113 (*)

Europe default + milliseconds

dd mon yyyy hh:mm:ss:mmm(24h)

14

114

-

hh:mi:ss:mmm(24h)

-

20 or 120 (*)

ODBC canonical

yyyy-mm-dd hh:mi:ss(24h)

-

21 or 121 (*)

ODBC canonical (with milliseconds)

yyyy-mm-dd hh:mi:ss.mmm(24h)

*    The default values (style 0 or 100, 9 or 109, 13 or 113, 20 or 120, and 21 or 121) always return the century (yyyy).

** Input when converting to datetime; Output when converting to character data.


잘 모르겠네요... 저역시... 그렇다면 질의를 수행해 봐야죠 ^_^


SELECT CONVERT (char(30), GETDATE(), 102)


[출처] www.sqler.pe.kr

Posted by baragi76
TAG Convert, SQL