在触发器中使用游标问题

xiaochun66 2007-08-04 12:44:58
看SQL2000帮助说,不推荐在触发器中使用游标,那还有那种方法可以替代游标实现,每条记录逐一读取。。。
...全文
319 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sp4 2007-08-06
  • 打赏
  • 举报
回复
游标尽量避免
srgcc 2007-08-06
  • 打赏
  • 举报
回复
我喜欢大量使用游标!!
y_dong119 2007-08-06
  • 打赏
  • 举报
回复
游标也有游标的作用,哈哈
浪漫幕末 2007-08-04
  • 打赏
  • 举报
回复
要是可以取代游标,那SQL里面就没必要使用游标了。尽量避免用游标,但不是不用游标。
lang8134 2007-08-04
  • 打赏
  • 举报
回复
楼上的例子,我觉得跟游标没区别,还是一条条select.
如果能提高效率的话,能解释下为什么吗?
bootupnow 2007-08-04
  • 打赏
  • 举报
回复
有时需要批量给一个用户grant权限的时候,就比较有用了。
bootupnow 2007-08-04
  • 打赏
  • 举报
回复
可以考虑用min,max来替代游标处理,一个简单的例子:
-- 建表
create table a(
tid int,
tname varchar(20)
)

-- 测试数据
insert into a
select 1,'x' union all
select 3,'y' union all
select 2,'z'

-- while取数
declare @id int,@name varchar(20)
select @id = min(tid) from a
while (@id is not null)
begin
select @id = tid ,@name = tname from a where tid = @id
print cast(@id as varchar(20)) + space(3) + @name
select @id = min(tid) from a where tid > @id
end

-- 结果
1 x
2 z
3 y
cmHua 2007-08-04
  • 打赏
  • 举报
回复
正解,因为与SQL语句相比,游标效率太低了
lang8134 2007-08-04
  • 打赏
  • 举报
回复
最好用批量更新的语句代替.(如果能的话)
触发器被触发的很频繁,而游标的效率又低,所以不推荐使用.

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧