Если у вас установлен ReSharper, вы также можете настроить быстрые клавиши быстрого доступа Visual Studio «Alt-Right» и «Alt-Left» для CamelHump, не теряя стандартного поведения Visual Studio для «ctrl-right» и «ctrl-left».
Подробности здесь: http://davidrcook.wordpress.com/2009/11/05/working-with-camel-case-in-visual-studio/
Я не могу придумать хороший способ.
Однажды я потратил много времени на отладку очень информативного сообщения "Деление на ноль".
Обычно вы раскомментируете различные части кода вывода, чтобы найти ту, которая вызывает проблемы.
Затем вы берете найденный фрагмент и заставляете его возвращать значение, которое указывает на наличие проблемы, вместо фактического значения (в вашем случае нужно заменить строку вывода на len(of the output)
). Затем вручную сравните с длиной столбца, в который вы вставляете.
Быстрый и грязный способ исправить это - выбрать строки в новой физической таблице следующим образом:
SELECT * INTO dbo.MyNewTable FROM <the rest of the offending query goes here>
... и затем сравнить схему этой таблицы со схемой таблицы, в которую ранее входил INSERT, и ищите столбцы большего размера.
Вы можете проверить длину каждого вставленного значения с условием if, и если значение требует большей ширины, чем текущая ширина столбца, обрезать значение и выдать настраиваемую ошибку.
Это должно сработать, если вам просто нужно определить, какое поле вызывает проблему. Я не знаю, есть ли лучший способ сделать это.
по номеру строки в сообщении об ошибке вы сможете определить запрос insert, который вызывает ошибку. Измените его в запрос select, чтобы включить AND LEN(your_expression_or_column_here) > CONSTANT_COL_INT_LEN
для строк различных столбцов в вашем запросе. посмотрите на вывод, и это даст вам плохие строки.
Технически нет строки, на которую можно было бы указать, потому что SQL не записывал данные в таблицу.Обычно я просто фиксирую трассировку, запускаю ее Query Analyzer (если проблема уже не очевидна из трассировки, что может быть в данном случае) и быстро отлаживаю ее с помощью старинного метода «изменить мое ОБНОВЛЕНИЕ на SELECT». Разве это не сводится к одному из двух:
a) Определение вашего столбца неверно, и необходимо изменить ширину б) Ваше определение столбца правильное, и приложение должно быть более защищенным
?