问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

触发器的sql语句为什么要用游标

发布网友 发布时间:2022-04-10 01:01

我来回答

2个回答

热心网友 时间:2022-04-10 02:30

不一定要用游标的。游标只是用来批量存储一些值。比如说你需要把某一张或者几张表的数据遍历一边。才会用到游标。只是单纯的逻辑判断及处理的话,就不需要了。
如果你有其他更详细的问题的话,可以继续问。上面的问题太宽泛了。

热心网友 时间:2022-04-10 03:48

时与过程执行时不同,则会生成一个 266 信息类错误。该错误不是由触发器中同一个条件生成的。

当调用存储过程时,如果 @@TRANCOUNT 为 1 或更大,并且该过程执行 ROLLBACK TRANSACTION 或 ROLLBACK WORK 语句,则会产生 266 号错误。这是因为 ROLLBACK 回滚所有未完成的事务,并将 @@TRANCOUNT 减到 0,该值比调用过程时要小。

如果在触发器中发出 ROLLBACK TRANSACTION:

◆对当前事务中的那一点所做的所有数据修改都将回滚,包括触发器所做的修改。

◆触发器继续执行 ROLLBACK 语句之后的所有其余语句。如果这些语句中的任意语句修改数据,则不回滚这些修改。执行其余的语句不会激发嵌套触发器。

◆在批处理中,所有位于激发触发器的语句之后的语句都不被执行。

◆触发器中的 ROLLBACK 关闭并释放所有在包含激发触发器的语句的批处理中声明和打开的游标。这其中包括了在激发触发器的批处理所调用的存储过程中声明和打开的游标。在激发触发器的批处理之前的批处理中所声明的游标将只是关闭,但是在以下条件下,STATIC 或 INSENSITIVE 游标不关闭:

·CURSOR_CLOSE_ON_COMMIT 设置为OFF。

·静态游标要么是同步游标,要么是完全填充的异步游标。

当执行触发器时,触发器的操作总是好像有一个未完成的事务在起作用。如果激发触发器的语句是在隐性或显式事务中,则肯定会这样。在自动提交模式下,也是如此。当语句开始以自动提交模式执行时,如果遇到错误,则会有隐含的 BEGIN TRANSACTION 语句允许恢复该语句生成的所有修改。该隐含的事务对批处理中的其它语句没有影响,因为当语句完成时,该事务要么提交,要么回滚。但是,当调用触发器时,该隐含的事务将仍然有效。

这意味着,只要触发器中发出 BEGIN TRANSACTION 语句,则实际上就开始了一个嵌套事务。因为当回滚嵌套事务时,嵌套的 BEGIN TRANSACTION 语句将被忽略,触发器中发出的 ROLLBACK TRANSACTION 总是回滚过去该触发器本身发出的所有 BEGIN TRANSACTION 语句。ROLLBACK 回滚到最外部的 BEGIN TRANSACTION。

若要在触发器中进行部分回滚,则即使总是以自动提交模式进行调用,也必须使用 SAVE TRANSACTION 语句。以下的触发器阐明了这一点:

CREATE TRIGGER TestTrig ON TestTab FOR UPDATE AS
SAVE TRANSACTION MyName
INSERT INTO TestAudit
SELECT * FROM inserted
IF (@@error <> 0)
BEGIN
ROLLBACK TRANSACTION MyName
END

这也影响触发器中 BEGIN TRANSACTION 语句后面的COMMIT TRANSACTION 语句。因为 BEGIN TRANSACTION 启动一个嵌套事务,而随后的 COMMIT 语句只应用于该嵌套事务。如果在 COMMIT 之后执行 ROLLBACK TRANSACTION 语句,那么 ROLLBACK 将一直回滚到最外部的 BEGIN TRANSACTION。以下的触发器阐明了这一点:

CREATE TRIGGER TestTrig ON TestTab FOR UPDATE AS
BEGIN TRANSACTION
INSERT INTO TrigTarget
SELECT * FROM inserted
COMMIT TRANSACTION
ROLLBACK TRANSACTION

此触发器绝对不会在 TrigTarget 表中插入。BEGIN TRANSACTION 总是启动一个嵌套事务。COMMIT TRANSACTION 只提交嵌套事务,而下面的 ROLLBACK TRANSACTION 则一直回滚到最外部的 BEGIN TRANSACTION。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
推荐一款在卧室听的音响,最好带CD,带收音机,可插U盘,价格1000以内!尽量... 求问,近几年还会有类似于声之形、你的名字这样的动漫电影么w_百度... 苦学包括什么 北京世纪百奥科技有限公司怎么样? 居住证积分需要哪些材料 上海办居住证积分需要什么资料 居住证积分有哪些材料 如何建立良好的家庭情感氛围 如何让家庭氛围更快乐 如何营造一个欢乐轻松的家庭氛围呢? 空气污染的危害有那些? 大气污染的危害有哪些? 空气污染造成的危害有哪些? 淘宝双11积分抽优惠券,积分哪里得来的 双11跨店卷满200减20 双11天猫10优惠券可叠加可跨店怎么用?谁知道啊,告知一下,谢谢! 五险自己怎么交多少钱一个月 有钱人都不用支付宝,只有穷人才用,是真的吗 怎么让支付宝等级不被别人看到? 我的世界里面的面包有什么用捏?不用说怎么合成。 在支付宝平台上买基金,黄金的人,真的都是有钱人吗? 支付宝财富v2有多少人? 自己交社保怎样交?交多少钱 社保怎么自己缴费一个月要多少钱? 爱普生c20x投影仪吊装后图像倒置怎么调? 面包有什么作用 爱普生 EB-C260X 投影机如何调解图像倒置 面包有什么好处 面包的功效与作用 中长发烫卷怎样好看? 烫头发中卷,从头顶开始卷的照片提供一些给我 《穷通宝鉴》是本什么书 命理书籍,预测书籍。。。 关于命理学的书籍? 面相、手相经典古籍有哪些?(要详细的),现代有哪些适合入门的手面相书籍。 关于命理研究方面的书,能否推荐几本比较好的书 关于风水方面有用的书? 浙江省杭州市西湖区双浦镇麦岭沙村邮编是什么? 杭州有几个区几个镇 三墩镇是属于杭州哪个区? 杭州双浦镇的周浦地区什么时候可以开发 请知道的回答 双浦 小和山 哪个好 杭州双浦规划 杭州双浦镇拆迁名单 双浦镇的基本概况 杭州转塘 双浦 龙坞的方言 是靠什么地区的? 炮艇战3D直升机,剧情23最后一关怎么过 如何在12306上修改旅客类型 联通手机号在网上营业厅申请销户后要几天才会受理? USB短接线有什么用 短信接口的作用