SQLException: строка или двоичные данные будут усечены - PullRequest
55 голосов
/ 23 апреля 2009

У меня есть код C #, который выполняет много операций вставки в пакет. Выполняя эти операторы, я получил сообщение об ошибке «Строка или двоичные данные будут обрезаны» и транзакция откатилась назад.

Чтобы выяснить, какой оператор вставки вызвал это, мне нужно вставлять один за другим в SQLServer, пока не возникнет ошибка.

Есть ли умный способ выяснить, какой оператор и какое поле вызвало эту проблему, используя обработку исключений? (SqlException)

Ответы [ 11 ]

0 голосов
/ 22 мая 2013

С Linq To SQL я отлаживал, регистрируя контекст, например. Context.Log = Console.Out Затем отсканировал SQL, чтобы проверить наличие очевидных ошибок, их было два:

-- @p46: Input Char (Size = -1; Prec = 0; Scale = 0) [some long text value1]
-- @p8: Input Char (Size = -1; Prec = 0; Scale = 0) [some long text value2]

последнее, что я нашел при сканировании схемы таблицы по значениям, поле было nvarchar (20), но значение было 22 символа

-- @p41: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [1234567890123456789012]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...