如何在SQL SERVER 2005存储过程中,使用循环语句
答案:2 悬赏:40 手机版
解决时间 2021-01-28 09:32
- 提问者网友:战魂
- 2021-01-27 17:07
如何在SQL SERVER 2005存储过程中,使用循环语句
最佳答案
- 五星知识达人网友:从此江山别
- 2021-01-27 18:07
实现循环有很多种方式 看你需要 或者喜欢
有for 循环
有while 循环
有foreach 循环
等等 我用的不是 sql sever数据库 具体的 你自己写写看
------------------------------------------------------------
SQL
SERVER数据库建立存储过程时,可以使用循环语句,下面就将为您介绍这种SQL SERVER数据库中存储过程使用循环语句的方法,供您参考。
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为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。
这个是我从网上百度的 希望对你有用
有for 循环
有while 循环
有foreach 循环
等等 我用的不是 sql sever数据库 具体的 你自己写写看
------------------------------------------------------------
SQL
SERVER数据库建立存储过程时,可以使用循环语句,下面就将为您介绍这种SQL SERVER数据库中存储过程使用循环语句的方法,供您参考。
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为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。
这个是我从网上百度的 希望对你有用
全部回答
- 1楼网友:第四晚心情
- 2021-01-27 19:04
以下为引用的内容: create procedure sp_test @ksrq(开始日期) datetime, @today(结束日期) datetimeasbeinginsert into table_one (a,b,c)select a,b,c from table_two where rq(时间)=@ksrq and rq <=@todayend 注:1.@ksrq取当前系统前一天的时间,如今天是2007-11-2,就取2007-11-1,且只要当前系统的日期,不要后面的时间,如果在过程中给@ksrq赋值. 2.@today取当前系统的日间,不要后面的时间.也是如果在过程中赋值. 答1:以下为引用的内容: create proc p_test @t datetimeasselect @tgodeclare @t datetime set @t = convert(datetime,'2007-11-2',120) exec p_test @tgodrop proc p_testgo答2: 以下为引用的内容:问题中@today, @ksrq是存储过程中的参数,需要在存储过程外面赋值declare@todaydatetime, @ksrqdatetimedeclare@todayvarchar(10), @ksrqvarchar(10)set@today=convert(varchar(10), getdate(), 120)set@ksrq=convert(varchar(10), dateadd(day,-1, getdate()),
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯