SQL SERVER数据库建立存储过程时,可以使用循环语句,下面就将为您介绍这种SQL SERVER数据库中存储过程使用循环语句的方法,供您参考。
CREAT PROCEDURE testerASBEGINSet NOCOUNT ON;DECLARE @userId varchar(50)DECLARE @count intSET @count = 0SELECT @count = count(*) FROM UserService_User WHERE Account like ‘%111%’WHILE @count > 0BEGINSELECT @userId = Id FROM UserService_User WHERE Account like ‘%111%’exec UserService_RemoveUserByUserId @userIdSET @count = @count -1ENDEND
说明:
1、此存储过程在SQL SERVER 2005上测试通过,值得注意的是,循环体中,语句是使用BEGIN……END包括的,而不是网络上常说的WHILE ……END WHILE结构,其他的循环语句,如LOOP ……UNTIL……END LOOP也不能通过编译,也许是版本的问题,但在SQL SERVER2005中,循环体使用BEGIN……END就可以,而不能使用网络上常说的WHILE ……END WHILE结构。
2、循环体中 UserService_RemoveUserByUserId 是一个存储过程的名称,@userId为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。
【编辑推荐】
Sql Server两个版本中显示所有表信息的语句
SQL Server中一个语句块实现多条语句插入的方法
SQL Server数据库用户创建的方法(使用SQL语句)

使用SQL语句查看SQL Server事务日志的方法
SQL语句中UPDATE的三种用法
sql server数据库里面的带参存储过程怎么用
--创建{里的东西表示必须有的}[里的东西表示可有可无的看实际需求]CREATE{PROC|PROCEDURE}[schema_name.]procedure_name[{@parameterData_type}[OUT|OUTPUT]]--参数[,...n]--表示可以更多参数AS{[BEGIN]sql_statement[;]--表示sql语句[,...n]--表示更多sql语句[END]}[;]--执行execprocedure_name@parameter=参数值...
sql如何使用循环命令 像for endfor 跟do while enddo 可以用吗 记录指针可以移动吗?
如果是Oracle数据库,是PL/SQLcreate table_a (id num);beginfor i in 1..10insert into table_a values(i);end forend/好久没写了,大致是这样。 其他数据库,我简单说下,sql server是T-SQL, DB2是SQL PL,都是大同小异。 我感觉主要区别就是在一些参数使用上,语法略有不同。
sql存储过程的执行
执行带参数的存储过程的方法如下:Exec sp_configure allow updates,1--允许更新系统表。 exec _ChangeObjectOwnerBatch OldOwner,dbo以上是两个例子。 SQL Server中执行带参数的存储过程的方法是:EXEC 存储过程名字 参数1,参数2,数值参数EXEC 是一个关键字。 字符串参数使用单引号括起来,数值参数不需要使用单引号
发表评论