1. 試述存儲過程和觸" />
更新時間:2021-06-21 14:14:49作者:admin2
PROCEDUREp_book1PROCEDURE p_book2書名='大學英語'EXEC p_book2圖書編號=@x'001105'varchar(20)書籍表 where 書名=@c1EXEC p_book4 '大學語文'
1>觸發(fā)器也是一種存儲過程,只不過是通過事件觸發(fā)的而你所指的存儲過程,是用戶調取的2>觸發(fā)器有兩張內置的表inserted和deleted(新數據表和舊數據表)而存儲過程沒有3>存儲過程可以執(zhí)行一些不確定性的執(zhí)行,觸發(fā)器不可以執(zhí)行不確定性的執(zhí)行(我遇到過這個情況,具體記不清了好象是EXEC('SQL語句'),可以去搜搜相關資料)
1、
createtrigger?tgr_Topic_insert
on?classes
? ? for?insert?--插入觸發(fā)
as
? ? update?Section?set?SClickCount=SClickCount+1;
go
2、
?
SET NOCOUNT ON;DECLARE @count intdeclare @strSql varchar(max)SET @count = 0set @strSql=''WHILE @count <50BEGINif(@count % 10 =0)beginexec(@strSql)set @strSql=''endelsebeginset @strSql=@strSql+'insert into tb_test values('+ str(rand()*100)+','+str(rand()*100)+')'endSET @count = @count +1END
Section 表設計不合理,帖子數量和點擊率應該用視圖查詢得到。否則,就必須增加刪除,屏蔽等觸發(fā)器,如果論壇用戶較多,并發(fā)量較大時,觸發(fā)器會降低數據庫性能,且出現實際數據不吻合的情況。至于臨時登錄用戶,可以利用用戶訪問網站的日期和時間生成,沒必要在數據庫中事先生成。