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 ...
随机推荐
- 十、java_IO
目录: 一.java流式输入/输出原理 二.java流类的分类 三.输入/输出流类 四.常见的节点流和处理流 五.文件流 六.缓冲流 七.数据流 八.转换流 九.Print流 十.Ubject流 一. ...
- iptables限制同一IP连接数,防防CC/DDOS攻击
启动sftp本机的iptables防火墙功能,限制每个ip连接22端口(sftp连接端口即是ssh端口)最大为50个,当超过50后的连接数的流量就会被DROP掉! 同时iptables需要开放5000 ...
- 理解 PHP 依赖注入
Laravel框架的依赖注入确实很强大,并且通过容器实现依赖注入可以有选择性的加载需要的服务,减少初始化框架的开销,下面是我在网上看到的一个帖子,写的很好拿来与大家分享,文章从开始按照传统的类设计数据 ...
- JAVA实现SFTP实例
最近写的一个JAVA实现SFTP的实例: /* * Created on 2009-9-14 * Copyright 2009 by www.xfok.net. All Rights Reserved ...
- linux配置无秘钥登陆
linux配置无秘钥登陆 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近有点心烦,很少写博客了,后期的3个月里,估计更新的频率也不会太高,请见谅,今天给大家共享一下linux不 ...
- 远程客户端连接MysqL数据库太慢解决方案
远程客户端连接MysqL数据库太慢解决方案局域网客户端访问mysql 连接慢问题解决. cd /etc/mysql vi my.conf [mysqld] skip-name-resolve 此选项禁 ...
- 单源最短路径问题(dijkstra算法 及其 优化算法(优先队列实现))
#define _CRT_SECURE_NO_WARNINGS /* 7 10 0 1 5 0 2 2 1 2 4 1 3 2 2 3 6 2 4 10 3 5 1 4 5 3 4 6 5 5 6 9 ...
- xml总结(一 )
一.了解 XML(eXtensive Markup Language)可扩展标记语言. XML是被用来传输和存储数据,焦点是内容,是对html的补充. HTML是将数据进行格式化显示.xml需要自定义 ...
- 用Python中的re做信息筛选
背景 平时工作中,我们经常会处理大量的元数据(Raw Data),而一般的文件编辑器只能一次查询一个关键字,这就难以连续的分析元数据,比如分析产品日志文件(log),日志可能包括很多informati ...
- ettercap 模块使用
Ettercap的过滤规则只能经过编译之后才能由-F参数载入到ettercap中使用. 编译过滤规则命令是:etterfilter filter.ecf -o filter.ef. 过滤规则的语法与C ...