SQL利用循环语句插入数据

SQL利用循环语句插入数据,第1张

CREAT PROCEDURE tester

AS

BEGIN

SET NOCOUNT ON;

DECLARE @userId varchar(50)

DECLARE @count int

SET @count = 0

SELECT @count = count() FROM UserService_User WHERE Account like '%111%'

WHILE @count > 0

BEGIN

SELECT @userId = Id FROM UserService_User WHERE Account like '%111%'

exec UserService_RemoveUserByUserId @userId

SET @count = @count -1

END

END

说明:

1、此存储过程在SQL SERVER 2005上测试通过,值得注意的是,循环体中,语句是使用BEGIN……END包括的,而不是网络上常说的WHILE ……END WHILE结构,其他的循环语句,如LOOP ……UNTIL……END LOOP也不能通过编译,也许是版本的问题,但在SQL SERVER2005中,循环体使用BEGIN……END就可以,而不能使用网络上常说的WHILE ……END WHILE结构。

2、循环体中 UserService_RemoveUserByUserId 是一个存储过程的名称,@userId为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。

你看这里

do

while

not

rs1eof'这里是RS1的循环,输出所有ID值等于rs("ID")的所有数据,

-------------

if

rs1("id")=3

then'如果ID等于三的话就换行

rs1movenext

else-------------

rs1movenext'这里是RS1如果是最后一行的话跳出do

while

not

rs1eof执行下面的,

end

if

loop

这样,不过你ID是不是等于3都rs1movenext'所以这里是你的思路问题,或是我没有理解清楚补允一下,rs1movenext'只是记录指针下移一条

华子你们搞的神马Postgre数据库,貌似是在Linux下见过

WHILE expression LOOP

statements

END LOOP;

或者

FOR name IN [ REVERSE ] expression expression LOOPstatements

END LOOP;

是这个么?

'呵,何必这么复杂,如果要输出与数组相关的话,不要忘了asp里有个很好用的rsGetRows()了,给你段最简单的代码吧,如下:dim rs,arr,iset rs=connexecute("select from Navigation where ViewFlag order by Sequence asc")if not rseof then arr=rsGetRows() '这里把符合条件的所有记录都保存到了arr中,这里赋值后的arr就等于是一个二维数组了end if

rscloseset rs=nothing'上面代码就完成了从数据库读取数据到数组变量了,接下来只要输出数据,你只需要判断arr是否数组if isarray(arr) then for i=0 to ubound(arr,2) '上面有仁兄说过数组长度由ubound下标决定没错,所以你只要确定第二维的下标就知道数组长度ubound(arr,2),当然第一维就是ubound(arr,1)或者ubound(arr)就行了 responsewrite arr(0,i) '这里就是输出数组item了 responsewrite "<br>" '每输出一个数据就换一行,当然你也可以改成别的 nextelse responsewrite "暂无导航"end if '搞定

以上就是关于SQL利用循环语句插入数据全部的内容,包括:SQL利用循环语句插入数据、关于ASP的问题(数据库+do while循环深奥的问题)、Postgre 数据库 循环 存储过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9399351.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存