Отладка SQL Server: ошибка при ошибке? - PullRequest
5 голосов
/ 21 февраля 2011

Я не могу найти какие-либо параметры отладки при отладке SP в SSMS на SQL 2008. Возможно ли, чтобы он сломался в момент возникновения ошибки, чтобы я мог проверить, где именно выдается ошибка и какие значения переменных находятся в этой точке?

Ошибка, которую я пытаюсь отладить:

Сообщение 8152, уровень 16, состояние 14, процедура ххх, строка 58 Строковые или двоичные данные будут обрезаны.

Ответы [ 2 ]

2 голосов
/ 21 февраля 2011

Если вы заранее установили точку останова, вы можете переходить, пока не найдете ошибку.

В качестве хедз-апа вам нужно искать случай, когда вы кладете строку в varchar, который длиннее, чем позволяет varchar.

Итак, если у вас есть varcahr (5) и вы пытаетесь установить его как «mylongtext», вы получите эту ошибку.


Чтобы сделать это в SSMS, щелкните правой кнопкой мыши SP и выберите EXECUTE TO> New Window. Это создаст код выполнения для вас:

DECLARE @RC int
DECLARE @LocationID int
DECLARE @SiteID int

-- TODO: Set parameter values here.

EXECUTE @RC = [MY-DB].[dbo].[P_SELECT_RetrieveToolTips] 
   @LocationID
  ,@SiteID
GO

Переместите курсор на оператор EXECUTE и нажмите F9, чтобы добавить точку останова.

Затем нажмите кнопку воспроизведения (отладка). Когда он остановится на точке останова, нажмите F11, чтобы войти в SProc, а затем F10, чтобы пройти по каждой линии.

2 голосов
/ 21 февраля 2011

Для этого вы можете использовать Sql Query Analyzer. Ваше сообщение означает, что вы пытаетесь сохранить какое-либо значение в поле, длина которого меньше длины этого значения.

...