sql資料庫觸發器問題高手請進

時間 2022-07-22 08:50:15

1樓:

應該是先插入 member表 後插入 infomation 所以 要在 on infomation

create trigger tr_memberon infomation

for insert

asinsert into memberinfo(userid,password,email,level,point)

select t1.userid,t1.password,t1.email,t2.level,t2.point

from inserted t1, infomation t2where t1.userid=t2.uid

2樓:

"member和infomation表有關聯 每次insert都 會插入進去的"

-------------------------

考慮到你這一點,你必須先往一個表裡面insert進去資料,然後再後一個要insert進去資料的表裡面建立觸發器即可,下面假設你後插入資料的表是表member,則觸發器這樣建立:

create trigger tr_member

on member

for insert

asinsert into memberinfo(userid,password,email,level,point)

select t1.userid,t1.password,t1.email,t2.level,t2.point

from inserted t1, infomation t2

where t1.userid=t2.uid

3樓:匿名使用者

set quoted_identifier on

goset ansi_nulls on

gocreate trigger updatememberinfo on dbo.infomation for insert as

declare @uid int

declare @level int

declare @point int

select @uid=uid,@point = point,@level = level from inserted

begin transaction

insert memberinfo (userid,level,point) values(@uid,@level,@point )

if (@@error <> 0)

begin

rollback transaction

endelse

begin

commit transaction

endgo

set quoted_identifier off

goset ansi_nulls on

go大致格式是這樣的,前兩個表應該是在插入時分別觸發自己的觸發器,比如第一個表插入一條記錄,那麼memberinfo 就會插入相應的記錄,這時member插入記錄時,要在觸發器裡判斷memberinfo 表裡是否已經有對應記錄,如果有就更新,沒有則插入。

不過,我覺得你在這裡沒有必要用觸發器,因為可以建立一個檢視,把這兩個表關聯起來,查詢的時候從檢視中直接查處兩個表的關聯資料,工作簡單,伺服器負載也清。

回答完畢,謝謝。。。。。。

sql觸發器初級問題

雖然不知道lz的具體意圖,但是根據你描述的寫了一下,有問題再追問吧,望採納。第一題 if object id hy is tgr tr is not null drop trigger hy is tgr gocreate trigger hy is tgr on huiyuan after ins...

phpMyadmin匯入資料庫sql問題

type myisam 和 engine myisam 都是設定資料庫儲存引擎的語句 老版本的mysql使用type而不是engine 例如,type myisam mysql 5.1為向下相容而支援這個語法,但type現在被輕視,而engine是首先的用法。一般地,engine 選項是不必要的 除...

SQL資料庫問題!急啊,高分求一道SQL資料庫問題,急!!!(線上等)

估計是sql server的備份檔案,你在查詢分析器中執行下面的語句檢查一下就知道了 restore verifyonly from disk c 你的檔案 還原的話,到企業管理器裡面去還原 不過你的檔案這麼小,不知道是否完全備份,如果不是完全備份,則不可還原 還原資料庫 企業管理器 右鍵 資料庫 ...