Запрос SQL Server в режиме отладки: запрашивает таблицу?

#tsql #sql-server-2014 #debug-mode

#tsql #sql-server-2014 #режим отладки

Вопрос:

У меня есть большой скрипт, который мне нужно отладить, чтобы перехватить ошибку. В скрипте есть таблица, объявленная как переменная. Некоторый t-sql выполняет вставку в эту таблицу. Я хотел бы выбирать из таблицы, находясь в режиме отладки. У меня на экране открыто окно «locals», но я не могу видеть там содержимое таблицы, только саму переменную, и я также не могу выбрать временную табличную переменную, когда выполнение кода останавливается на желаемой точке останова.

Есть ли способ, которым я могу запросить таблицу в режиме отладки? Спасибо!

Ответ №1:

В целях отладки вы могли бы заменить табличную переменную (@tableName) глобальной временной таблицей (##tableName).

Табличные переменные и локальные временные таблицы (#tableName) существуют только в сеансе, в котором они определены, поэтому запрос может быть выполнен только в этом сеансе. Глобальные временные таблицы могут быть доступны из других сеансов и будут сохраняться до тех пор, пока все подключения к ним не будут удалены, так что вы сможете проверять результаты из другого окна SSMS по мере выполнения скрипта в этом окне.

Вы захотите закомментировать определение табличной переменной, затем добавить CREATE TABLE ##... инструкцию. После этого Find amp; Replace должен подготовить ваш скрипт (и поместить его обратно, когда вы закончите).

Вот документация по временным таблицам.