안규 공부방

MS-SQL > SubQuery - Insert 예제

등록일 : 2017-07-03 19:05 조회수 : 92,924

오늘도 안규는 밤샘 작업을 핑계로 회사에 남아서,,, 헛짓만 하다가 홈피 수리를 하는군요.

울 사장님 아시면,,,, 저 정말 짤릴지도 몰라요.

그래도, 뭐 홈페이지 관리하는게 좋으니까,,, 신경쓰고 싶지 않네요.....

울 사장님 맨날 맨날 영업안된다구,,, 한숨만 쉬네여.... (^_^)

직원들은 옆에서 태클들어온다구,,,,, 한숨만 쉬구,,,, 하하~~~ 그래도 암 생각없는 안규는

신이 납니다....... 왜냐구요?? 진짜루 암 생각없으니까요....

그럼, 오늘은 또 넘 간단하고,, 혹시 유용할지 모르는 팁을 올려 볼까해요...

SUB QUERY를 이용해서 데이터를 입력하는 겁니다.

앞에서도 잠깐 소스를 보여 드린 것 같은데,, 제가 간단히 테스트한 예제 소스를 올려 드릴께여.

글을 씁니다. 당연히 자료실이나, 자유게시판에서 ,,, 지금까지 무식한 안규는 이런식으로 코딩했지요.


1. SELECT를 이용해서 가장 큰값을 가져옵니다.

2. ISNULL인가를 체크하겠지요.... 비어 있으면 '1' 만약 비어 있지 않으면 가장 큰값에 1를 더합니다.

3. 그리구, 다시 INSERT 해 줍니다.

4. 성공하면 COMMIT 시켜 주고,,, 실패하면,, ROLLBACK 처리해 줍니다. (트랜젝션 처리)

5. 객체를 닫구 페이지를 이동합니다.



특히 ASP 코딩은 손이 많이 가는 작업입니다.....

웬만하면 소스를 줄여야겠지요... 아래의 소스는 1~5번까지 처리하는 간단한 소스입니다.

1~3번까지는 쿼리 하나로 모두 해결된답니다.

유용한 정보가 되길 바랍니다.

그럼, 소스입니다.
 
	objCnn.BeginTrans

	Sql=" INSERT INTO BOARD(NUMBER,TITLE,CONTENT) "
	Sql=strSql &"  (SELECT ISNULL(MAX(NUMBER)+1,1) AS SEQ,'&"TITLE&"','"&CONTENT&"' FROM BOARD)

	Set objRs = objCnn.Execute(strSql)
	

	If objCnn.Errors.Count > 0 Then    ' Error 가 있는가? 처리,,,에러가 있으면 트랜젝션처리한다.
 	       objCnn.RollBackTrans 
 	       objCnn.close
 	       Set objCnn=Nothing
	        response.redirect "db_err.html"
	Else
 	       objCnn.CommitTrans 
 	       objCnn.close
	        Set objCnn=Nothing
 	       response.redirect "OK.html"
	End If

	objCnn.close
	Set objCnn=Nothing


간단하게 소스를 작성해 보니,,, 역시나,, 너무 간단하군요..

더 좋은 쿼리문이 많이 있을 겁니다.... 쿼리는 언제나 어려워요... 저에겐,,,

암튼, 좋은 정보가 되었으면 좋겠네요.. 정말루,,

오늘도 좋은 하루 되세요.....
 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.