資料庫應用 Sqlserver觸發器

2021-04-19 23:36:59 字數 1634 閱讀 8002

下面講在sql sever2000/sybase資料為里設定觸發器的指令碼例項

sql sever2000和sybase的儲存語句是相同的

題目要求:表1和表2的主鍵都是xjh(學籍號),當表1新增,刪除,或者修改資料時,表2自動更新,請用觸發器實現它們?

答案:建議在資料庫管理中心直接執行ddl的sql語句,從而達到建立觸發器的目的

//建議在表1建議3個觸發器,

/*table1:代表1,table2:代表2*/

table1-insert_tg=插入觸發器

table1-del_tg =刪除觸發器

table1-update_tg=更新觸發器

/*table1-insert_tg插入觸發器*/

create trigger dbo.table1-insert_tg on table1

for insert as

declare @xjh_s varchar(8)

begin

select @xjh_s=(select xjh from inserted)/*取得新插入的xjh*/

/*檢查在table2不存在此資料,則插入*/ 

if not exists(select *  from table2,inserted where table2.xjh=inserted.xjh)  

begin

insert into table2 values(@xjh_s)

end 

end   

/*table1-del_tg刪除觸發器*/

create trigger dbo.table1-del_tg on table1

for delete as

declare @xjh_s varchar(8)

begin

select @xjh_s =(select xjh from deleted )

delete from 代表2,deleted   where (代表2.xjh=deleted.xjh)

end/*表1的非主鍵xm被修改,則自動更新到表2對應的xm*/

/*以更新xm姓名為例子*/

table1-update_tg=更新觸發器

create trigger dbo.table1-update_tg on table1

for update as

declare @xjh_s varchar(8)

declare @xm_s varchar(20)

begin

select @xjh_s=(select xjh from inserted)/*取得新插入的xjh*/

select @xm_s=(select xm from inserted)/*取得新修改的xm*/

if update(xm)

begin

/*檢查在table2存在此資料,則更新相關資料*/ 

if exists(select *  from table2,inserted where table2.xjh=inserted.xjh)  

begin

update table2 set xm=@xm_s

where table2.xjh=inserted.xjh

end 

endend  

sqlserver資料庫大型應用解決方案總結

隨著網際網路應用的廣泛普及,海量資料的儲存和訪問成為了系統設計的瓶頸問題。對於乙個大型的網際網路應用,每天百萬級甚至上億的pv無疑對資料庫造成了相當高的負載。對於系統的穩定性和擴充套件性造成了極大的問題。一 負載均衡技術 負載均衡集群是由一組相互獨立的計算機系統構成,通過常規網路或專用網路進行連線,...

SQL Server資料庫大型應用解決方案總結

隨著網際網路應用的廣泛普及,海量資料的儲存和訪問成為了系統設計的瓶頸問題。對於乙個大型的網際網路應用,每天百萬級甚至上億的pv無疑對資料庫造成了相當高的負載。對於系統的穩定性和擴充套件性造成了極大的問題。一 負載均衡技術 負載均衡集群是由一組相互獨立的計算機系統構成,通過常規網路或專用網路進行連線,...

SQL Server資料庫大型應用解決方案總結

sql server資料庫大型應用解決方案總結 原創 2016 04 12 net求學者 架構師聯盟 隨著網際網路應用的廣泛普及,海量資料的儲存和訪問成為了系統設計的瓶頸問題。對於乙個大型的網際網路應用,每天百萬級甚至上億的pv無疑對資料庫造成了相當高的負載。對於系統的穩定性和擴充套件性造成了極大的...