Здравствуйте, Oxy, Вы писали:
Oxy>Хочу выяснить это глюк MS или так должно быть
Oxy>Допустим есть запрос
Oxy>Oxy>DECLARE @qqq BIGINT
Oxy>SELECT @qqq=ISNULL(Field,-1) FROM Table WHERE (bla, bla, bla)
Oxy>
Oxy>После исполнения запроса получаю @qqq = NULL , если не найдено ни одной записи удовлетворяющей условие. Почему? По логике должен же получить @qqq = -1. Или я чего то не понимаю?
Oxy>Но если перед запросом поставить SET @qqq=-1, то все нормально.
Все дело в том, что возвращается
пустой рекордсет. А если так, то функция ISNULL просто не получает никакого аргумента, вот и все. Поэтому @qqq не меняется. Если Вы поставите перед запросом SET @qqq=-2, то и после запроса останется это же значение.
Jeka