[笔记]触发器和游标

9/1/2015来源:SQL技巧人气:956

[笔记]触发器和游标

触发器

触发源:insertupdatedelete

after:在触发源执行后执行触发器中的代码

insteadof:在触发源执行前执行触发器的代码,同时触发源的操作被废弃

语法:

createtrigger触发器名

on表名afterinsert,update,delete--可以3个都写,也可以只写1个

as

begin

...

end

游标

作用:可以逐条操作表中的数据

缺点:性能低,尽量不要使用

示例:为每个人的英语成绩加个随机数

--定义游标

declares1cursorforselectName,Gender,EnglishfromTable_1

--在访问游标中某行的数据时,需要声明变量

declare@sNamenvarchar(50)

declare@sGenderbit

declare@sEnglishnvarchar(10)

--打开游标

opens1

--通过游标从结果集中取数据。注意:每次取一行的值

fetchs1into@sName,@sGender,@sEnglish

--这个全局变量的意思是:当fetch这行没有问题时,就等于

while(@@FETCH_STATUS=0)

begin

set@sEnglish=@sEnglish+RAND(100)

updateTable_1setEnglish=@sEnglishwhereName=@sNameandGender=@sGender

--再取,才能循环起来

fetchs1into@sName,@sGender,@sEnglish

end

--关闭游标

closes1

--释放游标

deallocates1