Как я могу вывести оператор SELECT к области “Messages” в студии менеджмента SQL Server из хранимой процедуры?

Просто удалите 0, и вместо этого добавится пробел:

>>> print  "'%6d'"%4
5
задан GEOCHET 6 July 2009 в 15:02
поделиться

4 ответа

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

Alter Procedure Foo(@Col1 int, @col2 varchar(20), @Debug Bit = NULL)
As
SET NOCOUNT ON

If @Debug = 1
  Begin
    Select * From SomeTable Where Col1 = @Col1
  End

-- The rest of your code here

Тогда,

3
ответ дан 18 December 2019 в 09:52
поделиться

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

CREATE TABLE ##t1 (x int)
GO

CREATE PROCEDURE Foo AS
BEGIN
  TRUNCATE TABLE ##t1
  INSERT INTO ##t1 SELECT column FROM table;
END
GO

exec Foo;
select x from ##t1;
2
ответ дан 18 December 2019 в 09:52
поделиться

Установите параметр «Результаты в текст», и ваши вкладки «Результаты» и «Сообщения» будут объединены в одну вкладку, объединяющую операторы PRINT и SELECT.

Чтобы установить для результатов значение «Текст», выполните одно из следующих действий:

  • Control-T
  • Меню запроса \ Results To \ Results to Text
11
ответ дан 18 December 2019 в 09:52
поделиться

Должен ли он быть на панели сообщений? Я всегда считаю удобным просто запустить запрос выбора, который выводит результаты в панель результатов, а фактический вывод - в другом наборе результатов. Иногда я включаю столбец «идентификатор», который помогает идентифицировать результаты. Например:

select 'checkpoint1',a,b,c from table1
....
select 'table @a', *  from @a
....
<actual query here>

Когда хранимая процедура готова к работе, просто удалите эти операторы каркаса

1
ответ дан 18 December 2019 в 09:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: