Как увидеть значения табличной переменной во время отладки в T-SQL? - PullRequest
172 голосов
/ 14 декабря 2009

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

enter image description here

Ответы [ 9 ]

293 голосов
/ 19 июля 2011
DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO)

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

enter image description here

32 голосов
/ 21 октября 2010

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

17 голосов
/ 09 ноября 2011

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

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

exec sp_select 'tempDb..#myTempTable'

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

6 голосов
/ 10 февраля 2015

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

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

1 голос
/ 14 декабря 2009

Просто используйте запрос select для отображения переменной таблицы, где бы вы ни хотели проверить.

http://www.simple -talk.com / SQL / учиться-SQL-сервер / управление-студия-усовершенствования-в-SQL-Server-2008 /

0 голосов
/ 13 мая 2016

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

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

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

0 голосов
/ 14 марта 2016

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

SELECT * FROM @d
0 голосов
/ 21 августа 2014

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 @PARAM=@p1
0 голосов
/ 06 января 2010

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

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