database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1996 게시물 읽기
No. 1996
도와주세요 테이블 INSERT 시 다른 테이블에 내용을 넣어야 하는데...
작성자
김도연(ehdusdk)
작성일
2005-06-01 00:24ⓒ
2005-06-01 00:56ⓜ
조회수
3,571

주식 테이블

 

열이름 데이터형식 길이
stock_name varchar 50
times datetime 8
volumes int 4
stockprice int 4
stock_fact_index int 4


 

 

 

 

 

 

거래량 테이블

 

열이름 데이터형식 길이
volume_id int 4
volume_buying int 4
volume_selling int 4
volumes int 4


 

안녕하세요 DB 관련 프로젝트를 맡아서 어려움에 처한 사람입니다.

다름이 아니고 DTS를 이용하여 주식 테이블에 INSERT를 할려고 하는데 그 테이블에 INSERT 시에

다른 관련 테이블인 거래량 테이블에 데이타를 넣길 원합니다.

그런데 INSERT 할려고 하는 데이타가 A 테이블에 들어감과 동시에 B 테이블에도 들어가게 할려면 어떻게 해야 하나요??

DTS 를 이용하여 A 테이블에 넣기 때문에 들어가는 데이타 가 무엇인지는 모르지만 타입은 알고 있습니다. 어떻게 넣어야 합니다.

제가 생각 하기에는 A 테이블에 들어가는 데이타를 리턴해주는 함수를 만들어서 트리거를 이용하여

트리거 상에서 그 함수를 호출하여 주식 테이블과 거래량 테이블에 넣어야 된다고 생각 하고 있거든요

 

도와 주세요 ㅡ.ㅡ ;; ㅜ.ㅜ

제가 생각 하는 것인 맞는지 아니면 어떻게 해야 하는지 알려주세요

꼬옥 주식테이블과 거래량 테이블은 따로 존재하고 같은 데이타가 두 테이블에 들어가야 합니다.

주절주절 말이 복잡하죠 도와주십시요 ㅡ.ㅡ 꾸벅

이 글에 대한 댓글이 총 3건 있습니다.

방법적으로는 Trigger가 맞습니다.

항상 DTS를 이용해서 데이터를 붓는 과정(Insert)이라면 다르겠지만

DTS를 이용해서 넣는 것은 1회이면

그 과정을 Stored Procedure를 이용해도 되구요.

또는 그마저도 아니다 싶으면

Transaction을 이용하는 것도  있지 않나 싶은데요.

여튼 Trigger를 이용하여 하는 방법은 이렇습니다.

insert의 과정에서만 일어나는 Trigger의 예시이니 적당히 변경하여 사용하십시요.

 

Create Trigger 주식_in
 on 주식
FOr Insert
As

Declare
 @stock_name varchar(50)
, @times    datetime
, @volumes   int
, @stockprice int
, @stock_fact_index int

select @stock_name = stock_name
,  @times  = times
,  @volumes = vloumes
,  @stockprice = stockprice
,  @stock_fact_index = stock_fact_index
from inserted

/*
위의 과정은 insert된 부분의 Recode의 변수를 모두 받아들인 것입니다.
거래량 테이블에서 일어나는 일을 아래와 같이 기술해주면 되리라 생각합니다.

insert into 거래량 (volume_id, volume_buying, volume_selling, vloumes) values
or
update
or
delete

*/

 

화이팅하세요.

여리님이 2005-06-01 10:03에 작성한 댓글입니다. Edit

뭐 쿼리문 까지 짜서 올릴필요는 없을것 같구요

이렇게 하면 쉽게 끝나지 않을까요?

트리거는 필요 없을꺼 같구요 리턴 함수도 필요 없을꺼 같습니다.^-^

 

하는 방법은 dts 를 이용해서 넣는다고 했으니

통채로 넣는걸로 알겠습니다.

기존에 데이터가 있던 말던 상관없이

insert targettable (attribute,......) select attribute ...... from insertedfromdtstable where 날짜는 오늘

뭐 이러면 한번에 들어갈것 같습니다.

또 bulk insert 옵션이 활성화 되어야 할 수 있습니다.

 

 

석이님이 2005-06-01 10:09에 작성한 댓글입니다. Edit

 

감사합니다. ms_sql을 쓴적이 없어서 ㅡ.ㅡ ;

오라클도 써봤어도 그리 잘쓴것도 아니어서여 ㅡ.ㅡ ;

좀더 물어 볼 것이 있음 올릴테니 답글 부탁 드리고요

감사합니다.

김도연(ehdusdk)님이 2005-06-01 10:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1999데이터베이스가 웜 대기상태입니다.
오상환
2005-06-02
2221
1998인덱스를 생성해야 하는데요 [1]
이헤선
2005-06-01
2387
1997PostgreSQL -> MSSQL2000으로 이동 포팅 (마이그레이션) [1]
김도일
2005-06-01
2074
1996도와주세요 테이블 INSERT 시 다른 테이블에 내용을 넣어야 하는데... [3]
김도연
2005-06-01
3571
1995데이타 값을 변경하려고 합니다. [2]
홍광표
2005-05-31
1611
1994겹치는 데이터 삭제...제목이 딱없네요.한번만 봐주세요 [9]
초보자
2005-05-30
3214
1993synonym 생성하기 [4]
조용주
2005-05-30
2531
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다