如何在SQL SERVER 2005存儲過程中,使用循環(huán)語句
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上測試通過,值得注意的是,循環(huán)體中,語句是使用BEGIN……END包括的,而不是網(wǎng)絡(luò)上常說的WHILE ……END WHILE結(jié)構(gòu),其他的循環(huán)語句,如LOOP ……UNTIL……END LOOP也不能通過編譯,也許是版本的問題,但在SQL SERVER2005中,循環(huán)體使用BEGIN……END就可以,而不能使用網(wǎng)絡(luò)上常說的WHILE ……END WHILE結(jié)構(gòu)。
2、循環(huán)體中 UserService_RemoveUserByUserId 是一個存儲過程的名稱,@userId為該存儲過程的參數(shù),如果有多個參數(shù),使用“,”分開就可以了,這也是存儲過程調(diào)用另一個存儲過程的一種方法。
相關(guān)文章
SQL 2005使用專用管理員連接(DAC)的技巧及修改系統(tǒng)表的方法
SQL Server 2005 為管理員提供了一種特殊的診斷連接,以供在無法與服務(wù)器建立標(biāo)準(zhǔn)連接時使用。2011-07-07詳解刪除SQL Server 2005 Compact Edition數(shù)據(jù)庫
這篇文章主要介紹了詳解刪除SQL Server 2005 Compact Edition數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下2017-06-06在登錄觸發(fā)器錯誤情況下連接SQL Server的方法
如果你創(chuàng)建了一個登錄觸發(fā)器,并且在這個觸發(fā)器中有一些不好的代碼,那么當(dāng)你嘗試著登錄時,你將會得到一個類似于圖一顯示的錯誤2011-07-07利用SQL SERVER 2005數(shù)據(jù)庫鏡像實現(xiàn)可用性分析
SQL SERVER2005中首次提出了數(shù)據(jù)庫鏡像概念,基于軟件的高可用性解決方案 那是完全基于軟件的高可用性解決方案。不需要增加硬件成本,也就是低硬件成本快速的故障轉(zhuǎn)移恢復(fù)2014-08-08SQL Server 數(shù)據(jù)庫清除日志的方法
SQLSERVER的數(shù)據(jù)庫日志占用很大的空間,下面提供三種方法用于清除無用的數(shù)據(jù)庫日志文件2012-07-07SQL2005CLR函數(shù)擴展-解析天氣服務(wù)的實現(xiàn)
其實我們可以用CLR獲取網(wǎng)絡(luò)服務(wù),來顯示到數(shù)據(jù)庫自定函數(shù)的結(jié)果集中,比如163的天氣預(yù)報。需要的朋友參考下2013-06-06SQLServer 2008中通過DBCC OPENTRAN和會話查詢事務(wù)
無論是有意無意,如果事務(wù)在數(shù)據(jù)庫中保持打開,則它會阻塞其他進(jìn)程對修改后的數(shù)據(jù)進(jìn)行操作。同樣,對事務(wù)日志進(jìn)行備份也只會截斷不活動事務(wù)的那部分事務(wù)日志,所以打開的事務(wù)會導(dǎo)致日志變多(甚至達(dá)到物理限制),直到事務(wù)被提交或回滾。2011-05-05SQLServer 2005數(shù)據(jù)庫連接字符串 連接sql2005必備資料
現(xiàn)在好多朋友開始用sqlserver 2005了,因為跟sql2000有區(qū)別,所以這里整理了下,需要的朋友可以參考下。2010-04-04