sqlserver循环
普通while循环
1 循环5来修改学生信息
循环遍历修改记录
DECLARE @i int
set @i=0
while @i<5
BEGIN
update Student set demo = demo+5 WHERE Uid=@i
set @i=@i +1
--PRINT @i
END
2 游标循环(没有事务)
----游标循环(没有事务)
BEGIN
DECLARE @a INT,@error INT
DECLARE @temp NVARCHAR(50)
SET @a=1
SET @error=0
-----申明游标为uid
DECLARE order_cursor CURSOR
FOR (SELECT [Uid] FROM Student)
-----打开游标
OPEN order_cursor
---- 开始循环游标变量
FETCH NEXT FROM order_cursor INTO @temp
WHILE @@FETCH_STATUS=0 -----返回被FETCH语句执行的最后游标的状态
BEGIN
UPDATE student SET Age=15+@a,demo=@a WHERE uid=@temp
SET @a=@a+1
SET @error=@error+@@ERROR ------记录每次运行sql后是否正确 0正确
FETCH NEXT FROM order_cursor INTO @temp -----转到下一个游标,没有会死循环
END
CLOSE order_cursor ----关闭游标
DEALLOCATE order_cursor ---释放游标
END
3 包含事务
---游标循环遍历--
BEGIN
DECLARE @a INT ,@error INT
DECLARE @temp VARCHAR(50)
SET @a=1
SET @error=0
BEGIN TRAN
DECLARE order_cursor CURSOR
FOR(SELECT uid FROM student)
OPEN order_cursor
FETCH NEXT FROM order_cursor INTO @temp
WHILE @@FETCH_STATUS=0 ---返回被fetch语句执行的最后游标的状态
BEGIN
UPDATE student SET age=40+@a,demo=@a WHERE uid=@temp
SET @a=@a+1
SET @error=@error+@@ERROR
FETCH NEXT FROM order_cursor INTO @temp ----转到下一个游标
END
IF(@error=0)
BEGIN
COMMIT TRAN
END
ELSE
BEGIN
ROLLBACK TRAN
END
CLOSE order_cursor
DEALLOCATE order_cursor
END
4 https://blog.csdn.net/lockepeak/article/details/2632904
sqlserver循环的更多相关文章
- SqlServer循环 和 批量倒数据
SqlServer循环语句 declare @i int set @i =1 while(@i<5) begin set @i = @i+1 insert into text(id,name ...
- Sqlserver循环嵌套
1.游标的状态,游标的开启游标的选择都是需要注意的. USE [ccnu] GO /****** Object: StoredProcedure [dbo].[P_ADD_DATA_XSBLHYCQK ...
- SqlServer循环读取配置
USE [DB_JP_BaseInfo00] GO /****** Object: StoredProcedure [dbo].[sp_wx_getAppointmentInfo_Str] Scrip ...
- SqlServer循环执行存储过程
begin --申明变量 ) declare @zycs int --赋值变量 --申明游标 declare order_cursor cursor for (select blh, zycs fro ...
- sqlserver 循环赋值变量
sql server 是可以用 @变量 +=值的: 第一:必须在循环里面, 第二: 必须在循环外面初始化变量的值 如: @变量=''; 这样才能循环给值
- Sqlserver 循环表
CREATE TABLE dbo.[User] ( UID BIGINT IDENTITY ,Name ) NOT NULL ,Pwd ) NOT NULL ,CONSTRAINT PK_User P ...
- SQLServer 循环1百万插入测试数据
1,首先创建student表 create table student ( sno int primary key , sname VARCHAR(200) ) 2,--向数据库中插入100万条随机姓 ...
- sqlserver 循环取时间
declare @str date; set @str='2015-01-08'; while DATEDIFF([day], @str , '2015-02-01')>0 begin sele ...
- SqlServer 循环建表、删除表、更新表
常用于分库分表 1.批量删除 declare @outter int declare @inner int ) ) ) begin set @tablePrefix='BankPayOrder_'+c ...
随机推荐
- MyEclipse上有main函数类运行报错:Editor does not contain a main type
MyEclipse下有main函数类运行报错:Editor does not contain a main type 出现这种问题的原因是,该java文件所在的包没有被MyEclipse认定为源码包. ...
- echarts 取消图例上的点击事件和图表上鼠标滑过点击事件
备注:标黄的代码是起作用的代码,其他的不需要借鉴!!! //取消 鼠标滑过的提示框 tooltip : { trigger: 'item', show:false, ...
- kindeditor上传图片的大小在哪控制
请修改修改了multiimage.js 的imageSizeLimit = K.undef(self.imageSizeLimit, '3MB') 大小设置级可以
- 2018acm-icpc宁夏邀请赛后记
由于要准备期末考试的缘故,时隔一个月之后我才想起来还有一场比赛没有总结. 大概是出去过的最远的地方了,宁夏理工学院离杭州有两千多千米. 不得不说感到了主办方满满的诚意,虽然是第一次办比赛,但是第一天组 ...
- mac 本上对 rar 压缩包解压
以前从晚上各种找软件对 xxx.rar 压缩包文件进行解压,也确实找到过那么几个,要不是不好用就是解压完有乱码,很是头疼. 这次又遇到这样的问题,于是下定决心将这个问题彻底解决好,经过验证,总结一下最 ...
- docker基础篇
下载,安装 安装Windows社区版 官网地址:https://store.docker.com/editions/community/docker-ce-desktop-windows?tab=de ...
- 解决vue <router-link>在IE与火狐上点击失效(路由不跳转)问题
<router-link to="/GoAbroad"> </router-link> vue中的<router-link>这种声明式的路由方式 ...
- CM记录-选择合适的硬件
hadoop的运行环境---hadoop/jvm/os/hw 原则1:主节点的可靠性要好于从节点:NameNode(Yarn-ResourceManager).DataNode(NodeManager ...
- Python 爬虫: 抓取花瓣网图片
接触Python也好长时间了,一直没什么机会使用,没有机会那就自己创造机会!呐,就先从爬虫开始吧,抓点美女图片下来. 废话不多说了,讲讲我是怎么做的. 1. 分析网站 想要下载图片,只要知道图片的地址 ...
- Jacob 调用金税系统
1.调用打印方法时,若是有预览弹窗提示,程序会阻塞住,并在控制台打印一行: C:\Program Files (x86)\��Ʊ���\914601007603699430.0\Config\Prin ...