Задание SQL Server 2000 вызывает процедуру и дает сбой: необходимо объявить переменную @intVariableName - PullRequest
0 голосов
/ 12 ноября 2010

Все,

У меня настроено задание, которое запускается по ночам, и каждые пару месяцев оно завершается ошибкой при выполнении хранимой процедуры в базе данных.Затем на следующую ночь все работает нормально.Это всегда одно и то же сообщение об ошибке:

"Необходимо объявить переменную '@intAccountIdent'. [SQLSTATE 01000] (Сообщение 18014)."

Я могу убедиться, что эта переменная объявлена ​​наначало моей процедуры, наряду со многими другими.

Эта работа существует уже много лет, и только недавно она начала появляться с этой ошибкой.Я профилировал его, разорвал на части, проверил, что версия в SVN такая же, как и на сервере ... ничего не изменилось, но это происходит постоянно.Я покопался в Интернете и не смог найти ничего, что могло бы помочь мне в этом.

Кто-нибудь сталкивался с подобной ситуацией?Если честно, я не знаю, ищу ли я решение или, более того, объяснение того, как такая ошибка может просто волшебным образом устранить себя и уйти?

Любое понимание очень ценится!

Спасибо.

1 Ответ

0 голосов
/ 13 ноября 2010

Я бы попытался запустить SQL Profiler при возникновении ошибки, отслеживая события SP: StmtStarted, SP: StmtCompleted и Exceptions (и, возможно, также те события, которые отслеживают запросы, отправляемые приложением в базу данных). Это может показать странность, происходящую при выполнении процедуры.

Это, вероятно, также приведет к просеиванию десятков тысяч строк данных, поэтому важно будет отфильтровать их как можно меньше строк. (Фильтрация по ObjectName = имя вашей процедуры является началом.)

Можете ли вы заставить его надежно провалиться, или это по сути случайное? Сравнение хороших и плохих трасс также может быть полезным.

...