222.定义可更新游标的案例

CREATE TABLE #(id int,a int)
INSERT #  SELECT 1,1
UNION ALL SELECT 2,2
UNION ALL SELECT 3,2

--索引或者约束
--ALTER TABLE # ADD UNIQUE(id)               --惟一键(约束),提供RID书签
--CREATE INDEX IDX_a ON #(a)                  --a列上的普通索引,可以提供RID书签
--CREATE CLUSTERED INDEX IDX_id_1 ON #(id)  --id列上的聚集索引,可以提供群集键书签
--CREATE INDEX IDX_id_2 ON #(id)              --id列上的普通索引,游标的定义语句无法使用该索引提
                                                       供的RID书签
--CREATE INDEX IDX_a_id ON #(a,id)           --a列和id列的上普通索引,可以提供RID书签

--游标处理
DECLARE tb CURSOR LOCAL
FOR
SELECT id FROM # ORDER BY a
DECLARE @id int
OPEN tb
FETCH tb INTO @id
WHILE @@FETCH_STATUS>=0
BEGIN
	UPDATE # SET a=a-@id/2
	WHERE CURRENT OF tb
	FETCH tb INTO @id
END
CLOSE tb
DEALLOCATE tb
SELECT * FROM #
DROP TABLE #
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值