請問Trigger |
答題得分者是:Mickey
|
Andy Wu
一般會員 發表:17 回覆:25 積分:18 註冊:2004-02-25 發送簡訊給我 |
請問一下,下面的Trigger找到了n筆的資料,該怎麼一筆一筆的將資料塞到另一個資料表當中? CREATE TRIGGER triTest
ON dbo.Test
FOR UPDATE AS
DECLARE @tmpTestid int,
@tmpTestName VARCHAR(20),
@tmpState CHAR(1)
BEGIN TRANSACTION SELECT @tmpState = state
FROM inserted IF @tmpState = 'D' THEN
BEGIN
SELECT @tmpTestid = Testid, @tmpTestName = TestName, @tmpState = State
FROM deleted INSERT INTO Test_audit
VALUES(@tmpTestId, @tmpTestName, @tmpState)
END COMMIT TRANSACTION GO 我降子寫,如果下SQL指令一次更新許多筆紀錄的話,此Trigger只會觸發一次,該怎樣寫才會觸發多次呢?謝謝~~~
|
danielldf
一般會員 發表:44 回覆:60 積分:20 註冊:2003-05-12 發送簡訊給我 |
我覺得你需要使用游標,以下是我寫一個觸發器,供參考:
create trigger tr_porate on po with encryption for insert,update as --匯率設置觸發器
begin
declare @mater_no varchar(14),
@rate real,
@sn int
declare cur_getrate scroll cursor
for select rate from exchange
open cur_getrate
fetch cur_getrate into @rate
close cur_getrate
deallocate cur_getrate
declare cur_po scroll cursor for select mater_no,sn_no from po
open cur_po
fetch cur_po into @mater_no,@sn
while (@@fetch_status=0)
begin
update po set rate=@rate where sn_no=@sn and ratemark='yes'
update po set rate=1 where sn_no=@sn and ratemark='no'
fetch cur_po into @mater_no,@sn
end
close cur_po
deallocate cur_po
return
end
go 努力过,还有什么遗憾呢!
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
Andy Wu
一般會員 發表:17 回覆:25 積分:18 註冊:2004-02-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |