返回上一語(yǔ)句受影響的行數(shù)!和@ERROR一樣的特性,在每一條語(yǔ)句執(zhí)行后都將被重置,如果將來(lái)使用需要將變量保存到局部變量中。任何不返回的語(yǔ)句都將這個(gè)變量置為0!比如經(jīng)常使用的IF語(yǔ)句。廢話少說(shuō),上代碼!
DECLARE @RowCountVar INT
Update AF_CarOil SET OilType = '五號(hào)汽油'--執(zhí)行后@@ROWCOUNT為2
SET @RowCountVar = @@ROWCOUNT --執(zhí)行后@@ROWCOUNT為1
IF @@ROWCOUNT = 1 --執(zhí)行后@@ROWCOUNT為0
BEGIN
PRINT '影響的行數(shù)為1'
PRINT @@ROWCOUNT
END
IF @RowCountVar <> 0
BEGIN
PRINT '受影響的行數(shù)為:' + STR(@RowCountVar)
END
-----------------------------------------------------------------
(2 行受影響)
影響的行數(shù)為 1
0
受影響的行數(shù)為: 2
分析:上面的代碼中在執(zhí)行Update語(yǔ)句之后,受影響的行數(shù)為2行,然后將受影響的行數(shù)保存到事先聲明的局部變量中,賦值語(yǔ)句實(shí)際上影響的行數(shù)為1行,在下面的IF語(yǔ)句中進(jìn)行了跳轉(zhuǎn),這個(gè)地方是關(guān)鍵,這并不是Update語(yǔ)句受影響的行數(shù)是1,而是將@@ROWCOUNT將的賦給局部變量的過(guò)程中變成了1。在執(zhí)行后IF @@ROWCOUNT = 1的判斷之后@@ROWCOUNT的數(shù)值重新被賦值為了0!
新聞熱點(diǎn)
疑難解答
圖片精選