SET @a = 1
IF @a = 0
SELECT [TranNumber] FROM A
WHERE [ITEM] < 'A'
ELSE IF @a = 1
SELECT [ItemNumber] FROM B
WHERE [ItemNumber] < 'A'
發布: 2008-10-13 10:11 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 10次 | 進入軟件測試論壇討論
SET @a = 1
IF @a = 0
SELECT [TranNumber] FROM A
WHERE [ITEM] < 'A'
ELSE IF @a = 1
SELECT [ItemNumber] FROM B
WHERE [ItemNumber] < 'A'
BLOCK 的測試—測試查詢方法B(查詢窗口C)
-- run query windows 3
DECLARE @a int
SET @a = 1
SELECT [ITEM] FROM A
WHERE @a = 0
AND [ITEM] < 'A'
UNION ALL
SELECT [ItemNumber] FROM B
WHERE @a = 1
AND [ItemNumber] < 'A'
結果
你會看到,查詢窗口B中的查詢會及時地完成,而查詢窗口C的查詢會一直等待,你可以通過執行存儲過程 sp_who2,查看當前的BLOCK狀況來確定查詢窗口C的查詢是否被查詢窗口A的查詢BLOCK住
結論
不要使用查詢方法B,它看起來很棒,實際的結果即是會增加被BLOCK的機會
文章來源于領測軟件測試網 http://www.kjueaiud.com/