sql存储过程循环while

create procedure [拥有者.]存储过程名[;程序编号]   [(参数#1,…参数#1024)]   [with   {recompile | encryption | recompile, encryption}   ]   [for replication]   as 程序行   其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数   (sql server 7.0以上版本),参数的使用方法如下:   @参数名 数据类型 [varying] [=内定值] [output]   每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了image外,其他sql server所支持的数据类型都可使用。

 

declare @mycounter int
set @mycounter = 0 /*设置变量*/
while (@mycounter < 2) /*设置循环次数*/
begin
waitfor delay '000:00:10' /*延迟时间10秒*/
insert into time_by_day
(time_id, the_date, the_year, month_of_year, quarter, day_of_month)
select top 1 time_id + 1 as time_id, the_date + 1 as the_date, year(the_date + 1)
as the_year, month(the_date + 1) as month_of_year, { fn quarter(the_date + 1)
} as quarter, day(the_date + 1) as day_of_month
from time_by_day
order by time_id desc

set @mycounter = @mycounter + 1
end

 

用游标吧

declare @a int,@b int
declare ccc cursor for select * from test where id>@id
open ccc
fetch next from ccc into @a,@b
while (@@fetch_status=0)
begin
.......
end
close ccc
declare ccc(这个操作看看别的系统存储过程怎么写的 记不太清了 每次都是copy的)

大概就是这样 不知道语法有没有错误 最近一段时间没用sqlserver了 看看系统存储过程就能明白怎么用cursor了

时间: 2025-01-27 05:44:20

sql存储过程循环while的相关文章

sqlserver 存储过程-关于SQL存储过程使用游标循环的问题

问题描述 关于SQL存储过程使用游标循环的问题 现有三张表a.b.c,循环表a,把a 表的某个字段作为b表的查询条件,如果b表查出的数据满足某个条件,就往c表里插一条数据,怎么写个存储过程?

Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环_MsSql

用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理 ================== DECLARE @A1 VARCHAR(10), @A2 VARCHAR(10), @A3 INT DECLARE CURSOR YOUCURNAME FOR SELECT A1,A2,A3 FROM YOUTABLENAME OPEN YOUCURNAME fetch next from youcurname into @a1,@a2,@a3 while @@fetch

通用合并表存储过程 循环变量与字符连接

存储过程循环变量与字符连接 Java代码   mysql> DELIMITER $$   mysql> drop PROCEDURE sp_test_switch$$   Query OK, 0 rows affected (0.01 sec)      mysql> CREATE PROCEDURE sp_test_switch()       -> BEGIN       ->  declare a int;       ->  declare b varchar(

mysql存储过程循环只执行一次

问题描述 mysql存储过程循环只执行一次 下面是存储过程主体,问题是无论怎么跑,貌似里面的两个循环都只会执行一次.好困惑.请sql大神解救 BEGINDECLARE stop_flag INT DEFAULT 0;DECLARE captain VARCHAR(500);DECLARE captain1 VARCHAR(500);DECLARE captain2 VARCHAR(500);declare captainstaffno1 varchar(32);declare captainst

sql 游标循环遍历

原文:sql 游标循环遍历   写存储过程的时候碰到一个需要对数据进行遍历循环操作的问题,最后通过游标解决了,感觉很适用. 1 declare @level varchar(100) 2 declare @uid varchar(100) 3 declare cur cursor--定义一个游标 4 read_only 5 for select egg_code.user_id,egg_prize_level 6 from egg_code inner join egg_prize on egg

sql字符替换与利用sql存储过程替换

如果你在替换数据库教程的指定字符串或字符,我们需要利用sql字符替换,但是对于超大容量的数据替换我们可能要用到sql存储过程替换 物,因为存储过程效率高于我们自己写的替换函数哦. update 数据表 set 字段=replace(字段,'.','') 下面看一款查询结果字符替换 --select * from sjz_dlfzb --select replace (substring(tbrq,2,len(tbrq)-2),'$','-') from sjz_dlfzb update sjz_

[20130607]PL/SQL存储过程的commit提交问题.txt

[20130607]PL/SQL存储过程的commit提交问题.txt 昨天在看别人写的存储过程的时候,发现程序代码里面不好的写法,就是把commit写在循环体内,这样写按照以前应该会产生很大的redo日志,主要是redo waste也会增加,但是我在11G下测试,情况好像不一样. 1.建立测试环境: SQL> @ver BANNER --------------------------------------------------------------------------------

sql-关于单表SQL存储过程查询。分页条数,当前页码,总条数的问题

问题描述 关于单表SQL存储过程查询.分页条数,当前页码,总条数的问题 我实现PUB_AREA 表的数据查询, 上面是我写的调试, 指出在下面and处报错,无布尔类型,不知道到底哪里错了- - declare @TotalNum intexec PUB_AREA_SelectAREACITYByHsfSearchss ''101@TotalNum outputselect @TotalNumalter PROCEDURE [dbo].[PUB_AREA_SelectAREACITYByHsfSe

使用SQL存储过程要特别注意的问题-注意顺序读取

存储过程|问题     存储过程是一个运行于SQL数据库之中最核心的事务,它通过长驻内存的形式,进行读取\处理\写入最为频繁处理的数据.     ASP虽然在微软的ASPX的侵袭下,仍旧是中小企业继续在用的一种网页语言,但是当要读取海量数据的时候,如果仍旧使用普通的SQL进行读取运行与写入,将导致系统资源的严重浪费,所以我们在ASP中使用存储过程,以提高数据的存取速度,同时通过SQL核心的获取数据的方法,可以有效的减少垃圾数据(不被立即使用,而且也不备较短的时间里被使用的数据)操作.     在