更新时间:2021-06-21 14:14:49作者:admin2
PROCEDUREp_book1PROCEDURE p_book2书名='大学英语'EXEC p_book2图书编号=@x'001105'varchar(20)书籍表 where 书名=@c1EXEC p_book4 '大学语文'
1>触发器也是一种存储过程,只不过是通过事件触发的而你所指的存储过程,是用户调取的2>触发器有两张内置的表inserted和deleted(新数据表和旧数据表)而存储过程没有3>存储过程可以执行一些不确定性的执行,触发器不可以执行不确定性的执行(我遇到过这个情况,具体记不清了好象是EXEC('SQL语句'),可以去搜搜相关资料)
1、
createtrigger tgr_Topic_insert
on classes
for insert --插入触发
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 表设计不合理,帖子数量和点击率应该用视图查询得到。否则,就必须增加删除,屏蔽等触发器,如果论坛用户较多,并发量较大时,触发器会降低数据库性能,且出现实际数据不吻合的情况。至于临时登录用户,可以利用用户访问网站的日期和时间生成,没必要在数据库中事先生成。