我做了一些存储过程
时注意到一个奇怪的事情,我可以用下面的例子解释说:为什么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