Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 сообщение о исключении NULL значений в агрегатных функциях  [new]
muscul
Member

Откуда:
Сообщений: 20
Доброго времени суток всем.
Парни есть проблема:
существует процедура которая заполняет таблицу на MS SQL путем сбора и агрегации данных из других таблиц.
Так вот в процессе сбора ей попадаются NULL значение в агрегируемых полях о чем она радостно сообщает в процессе выполнения с помощью сообщения: дословно не помню (счас не на работе) но смысле такой "NULL значения были исключены в агрегатных функция", что в принципе логично и не смертельно так как сообщение носит информативный характер и процедура нормально отрабатывает. НО проблема в том, что эта процедура запускается из Excel через VBA. И вот этот самый VBA почему-то воспринимает это сообщение как ошибку и обрубает процедуру. Причем происходит это не на всех компьютерах. зависимости из-за чего один эксель отрабатывает нормально а другой (при открытии и запуске того же файлика) падает с ошибкой я не нашел.

Вижу два решения но уже измучился в их поисках.
1. Заставить SQL Server не выдавать это сообщения чем похожим на set nocount on. Исключать эти NULL значения с помощью where или isnull нельзя. так как процедура делает селект из вьюхи внутри которой это сообщение и возникает и которую я не могу изменить.
2. Понять почему VBA так реагирует на информационное сообщение и отучить его это делать.

Помогите пожалуйста с проблемой уже весь мозг себе вывихнул об нее.
11 авг 11, 23:38    [11106899]     Ответить | Цитировать Сообщить модератору
 Re: сообщение о исключении NULL значений в агрегатных функциях  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
1. set ansi_warning off
2. это на форум по VBA
11 авг 11, 23:39    [11106903]     Ответить | Цитировать Сообщить модератору
 Re: сообщение о исключении NULL значений в агрегатных функциях  [new]
VladimirKr
Member

Откуда: СПб
Сообщений: 1062
muscul,

set ansi_warning off конечно хорошо, но есть ньюанс :) SET ANSI_WARNINGS ON/OFF и план выполнения
12 авг 11, 09:06    [11107380]     Ответить | Цитировать Сообщить модератору
 Re: сообщение о исключении NULL значений в агрегатных функциях  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Кто мешает в агрегатных функциях использовать ISNULL?
12 авг 11, 09:16    [11107412]     Ответить | Цитировать Сообщить модератору
 Re: сообщение о исключении NULL значений в агрегатных функциях  [new]
muscul
Member

Откуда:
Сообщений: 20
я же писал что нет возможности исправлять код той вьюхи в которой это происходит.
12 авг 11, 15:50    [11110801]     Ответить | Цитировать Сообщить модератору
 Re: сообщение о исключении NULL значений в агрегатных функциях  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
muscul
я же писал что нет возможности исправлять код той вьюхи в которой это происходит.
Не волнуйтесь.
У Вас один выход, и о нём Вам уже сказали.
12 авг 11, 16:10    [11111040]     Ответить | Цитировать Сообщить модератору
 Re: сообщение о исключении NULL значений в агрегатных функциях  [new]
Crimean
Member

Откуда:
Сообщений: 13147
есть нюанс
сам оптимизатор бывает "решает" запрос путем выполнения агрегации
в запросе при этом агрегации нет
и "влетаем" в полный рост на эту проблему
багу файлить лениво, но пара репро была где-то
12 авг 11, 16:42    [11111430]     Ответить | Цитировать Сообщить модератору
 Re: сообщение о исключении NULL значений в агрегатных функциях  [new]
Genniy
Member

Откуда:
Сообщений: 141
Используйте ISNULL и не ломайте себе голову. Это лучший вариант.
12 авг 11, 17:06    [11111630]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить