2012-01-18 4 views
0

эта ошибка появилась в коде C# при использовании хранимого proc на SQL 2005. Ошибка не отображается при запуске хранимой процедуры из студии mgmt. до сих пор это звучит примерно как проблемы с литьем b/w значение returend в сравнении с использованием C# ...«Ошибка преобразования арифметического переполнения в тип данных int» исчезла после повторной компиляции SP

WEIRD THING, когда я только что перепробовал SP, NO CHANGE DONE снова запускал команду ALTER proc 0 изменений, а ошибка исчезла в коде C#. В этом смысл? что просто перекомпиляция SP вызвала ошибку. спасибо.

+0

Показать код ошибки. SQL 2005 является отслаившимся в лучшем случае btw – MethodMan

ответ

1

Когда хранимая процедура определена, количество ключей SET в игре сжигается в этот sproc (так, что он ведет себя одинаково для вызывающих абонентов). Это может повлиять на поведение sproc; подавляя предупреждения, вызывая ошибки, в результате чего различного поведения, заставляя его не доверять сохранялись рассчитанным индексированные столбцы (и Recalc для каждой строки) и т.д.

Это звучит для меня как SET заявления в игре, когда он был первоначально не были подходящими; воссоздавая его, вы устанавливаете их во все, что было активным во второй раз. Тот же TSQL; тот же sproc - но разные SET варианты: разные результаты.

Поскольку параметры SET могут быть установлены как значения по умолчанию в SSMS, это может означать, что тот, кто создал его, впервые имел нестандартную настройку.

В частности, это влияет на ANSI_NULLS и QUOTED_IDENTIFIER.

Смежные вопросы