Подтвердить что ты не робот

Как увидеть значения переменной таблицы во время отладки в T-SQL?

Можем ли мы увидеть значения (строки и ячейки) в переменной таблицы в SQL Server Management Studio (SSMS) во время отладки? Если да, то как?

enter image description here

4b9b3361

Ответ 1

Это еще не реализовано в соответствии с этой ссылкой Microsoft Connect: Microsoft Connect

Ответ 2

DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO)

Вставьте указанный выше оператор в том месте, где вы хотите просмотреть содержимое таблицы. Содержимое таблицы будет отображаться как XML в окне locals, или вы можете добавить @v в окно часов.

enter image description here

Ответ 3

В этом проекте https://github.com/FilipDeVos/sp_select хранится процедура sp_select, которая позволяет выбирать из временной таблицы.

Использование:

exec sp_select 'tempDb..#myTempTable'

При отладке хранимой процедуры вы можете открыть новую вкладку и запустить эту команду, чтобы увидеть содержимое таблицы temp.

Ответ 4

В Хранимой процедуре создайте глобальную временную таблицу ## temptable и напишите запрос вставки в вашей хранимой процедуре, который вставляет данные в вашу таблицу в эту временную таблицу.

Как только это будет сделано, вы можете проверить содержимое временной таблицы, открыв новое окно запроса. Просто используйте "select * from ## temptable"

Ответ 6

Почему бы просто не выбрать таблицу и не просмотреть переменную таким образом?

SELECT * FROM @d

Ответ 7

Я пришел к выводу, что это невозможно без каких-либо плагинов.

Ответ 8

SQL Server Profiler 2014 перечисляет содержимое параметра значения таблицы. Может также работать и в предыдущих версиях. Включить SP: Запуск или RPC: Завершенное событие в столбце Сохраненные процедуры и столбец TextData, и когда вы нажимаете на запись в журнале, вы будете иметь инструкции вставки для переменной таблицы. Затем вы можете скопировать текст и запустить в Management Studio.

Пример вывода:

declare @p1 dbo.TableType
insert into @p1 values(N'A',N'B')
insert into @p1 values(N'C',N'D')

exec uspWhatever @[email protected]

Ответ 9

Извините, ребята, я немного опаздываю на вечеринку, но для тех, кто наткнулся на этот вопрос позже, я нашел самый простой способ сделать это в хранимой процедуре:

  • Создайте новый запрос с любыми параметрами процедуры, объявленными и инициализированными вверху.
  • Вставить в тело вашей процедуры.
  • Добавьте хороший старомодный запрос выбора сразу после инициализации переменной таблицы с данными.
  • Если 3. не является последним в процедуре, установите точку останова в той же строке, начните отладку и продолжайте прямо до точки останова.
  • Profit!!

Сообщение messi19 должно быть принятым IMHO, поскольку оно проще, чем мое, и делает работу наиболее того времени, но если вы похожи на меня и имеете переменную таблицы внутри цикла, вы хотите проверить, это делает работу красиво без особых усилий или внешних плагинов SSMS.