我做了一些存儲過程
時注意到一個奇怪的事情,我可以用下面的例子解釋說:爲什麼SQL變量仍然保持以前的值?
DECLARE @FileExtensionID int
SELECT * FROM FileExtensions WHERE (Name= 'pdf')
SELECT @FileExtensionID = ID FROM FileExtensions WHERE (Name= 'pdf')
SELECT IsNULL(@FileExtensionID , 0) -- First Select
SELECT * FROM FileExtensions WHERE (Name= '')
SELECT @FileExtensionID = ID FROM FileExtensions WHERE (Name= '')
SELECT IsNULL(@FileExtensionID , 0)-- Second Select
在上面查詢
我稱一表「FileExtensions」用ID,名稱列和我嘗試設置在可變@FileExtensionID ID,問題是,在第一選擇 - SELECT IsNULL(@FileExtensionID,0)
- @FileExtensionID具有vaild ID - 爲〔實施例9 - 丁在第二個時,沒有行從
SELECT @FileExtensionID = ID FROM FileExtensions WHERE (Name= '')
它也ķ前一個 - 9 - 並沒有返回0
我不知道爲什麼會發生,所以請告訴我它是如何來的?
應該補充一點,上面的例子並沒有「重置」變量。它只是舉例說明了一種簡單的方式,即顯示零行使賦值@var = 8完全不會發生。 – cairnz 2010-03-04 13:31:46