SQL SERVER數(shù)據(jù)庫(kù)中存儲(chǔ)過(guò)程使用循環(huán)語(yǔ)句
SQL SERVER數(shù)據(jù)庫(kù)建立存儲(chǔ)過(guò)程時(shí),可以使用循環(huán)語(yǔ)句,下面就將為您介紹這種SQL SERVER數(shù)據(jù)庫(kù)中存儲(chǔ)過(guò)程使用循環(huán)語(yǔ)句的方法,供您參考。
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
說(shuō)明:
1、此存儲(chǔ)過(guò)程在SQL SERVER 2005上測(cè)試通過(guò),值得注意的是,循環(huán)體中,語(yǔ)句是使用BEGIN……END包括的,而不是網(wǎng)絡(luò)上常說(shuō)的WHILE ……END WHILE結(jié)構(gòu),其他的循環(huán)語(yǔ)句,如LOOP ……UNTIL……END LOOP也不能通過(guò)編譯,也許是版本的問(wèn)題,但在SQL SERVER2005中,循環(huán)體使用BEGIN……END就可以,而不能使用網(wǎng)絡(luò)上常說(shuō)的WHILE ……END WHILE結(jié)構(gòu)。
2、循環(huán)體中 UserService_RemoveUserByUserId 是一個(gè)存儲(chǔ)過(guò)程的名稱,@userId為該存儲(chǔ)過(guò)程的參數(shù),如果有多個(gè)參數(shù),使用“,”分開(kāi)就可以了,這也是存儲(chǔ)過(guò)程調(diào)用另一個(gè)存儲(chǔ)過(guò)程的一種方法。
【編輯推薦】
Sql Server兩個(gè)版本中顯示所有表信息的語(yǔ)句
SQL Server中一個(gè)語(yǔ)句塊實(shí)現(xiàn)多條語(yǔ)句插入的方法
SQL Server數(shù)據(jù)庫(kù)用戶創(chuàng)建的方法(使用SQL語(yǔ)句)
使用SQL語(yǔ)句查看SQL Server事務(wù)日志的方法