Как Подавить ИЗБРАННЫЙ Вывод Хранимой процедуры, названной из другой Хранимой процедуры в SQL Server?

Поскольку ggplot слои рисуются в порядке их получения, вы можете нарисовать geom_hline ниже пунктирного (такого же размера, как линии сетки или больше), сделать его таким же цветом, как фоновая заливка, и это заблокирует линию сетки.

В простом случае вы знаете цвет фона (в данном случае он белый):

library(ggplot2)
ggplot(data = NULL) +
  geom_hline(yintercept = 0, size = 2, color = "white") +
  geom_hline(yintercept = 0, linetype = 4, size = 2) +
  theme_minimal() +
  theme(panel.grid = element_line(size = 2))

Чтобы сделать его более динамичным и соответствовать с темами, заполните фон сюжета темы и установите его в качестве цвета:

ggplot(data = NULL) +
  geom_hline(yintercept = 0, size = 2, 
             color = theme_dark()$panel.background$fill) +
  geom_hline(yintercept = 0, linetype = 4, size = 2) +
  theme_dark() +
  theme(panel.grid = element_line(size = 2))

53
задан bdukes 3 December 2009 в 05:55
поделиться

7 ответов

Кажется, я нашел решение .

Итак, то, что я могу сделать в моем сценарии SQL, выглядит примерно так (код sql-psuedo):

create table #tmp(xmlReply varchar(2048))
while not_done
  begin
    select top 1 record from updateTable where processed = 0
    insert into #tmp exec insertSomeData @param=record
  end
drop table #tmp

Вот если бы был еще более эффективный способ сделать это. Есть ли в SQL Server что-то похожее на / dev / null? Пустая таблица или что-то в этом роде?

27
ответ дан 7 November 2019 в 08:45
поделиться

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

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

CREATE PROCEDURE [dbo].[insertSomeData] (@myParam int) AS
BEGIN
DECLARE @reply varchar(2048)

--... Do a bunch of inserts/updates...

EXEC SelectOutput
END
GO

CREATE PROCEDURE SelectOutput AS
BEGIN
SET @reply = '<xml><big /><outputs /></xml>'
SELECT @reply
END
5
ответ дан 7 November 2019 в 08:45
поделиться

From which client are you calling the stored procedure? Say it was from C#, and you're calling it like:

var com = myConnection.CreateCommand();
com.CommandText = "exec insertSomeData 1";
var read = com.ExecuteReader();

This will not yet retrieve the result from the server; you have to call Read() for that:

read.Read();
var myBigString = read[0].ToString();

So if you don't call Read, the XML won't leave the Sql Server. You can even call the procedure with ExecuteNonQuery:

var com = myConnection.CreateCommand();
com.CommandText = "exec insertSomeData 1";
com.ExecuteNonQuery();

Here the client won't even ask for the result of the select.

2
ответ дан 7 November 2019 в 08:45
поделиться

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

1
ответ дан 7 November 2019 в 08:45
поделиться

Я не знаю, есть ли у SQL Server возможность подавления вывода (я не думаю, что это так), но в SQL Query Analyzer есть опция (на вкладке результатов) «Отменить Результаты ».

Вы запускаете это через isql?

0
ответ дан 7 November 2019 в 08:45
поделиться

You said your server is crashing. What is crashing the application that consumes the output of this SQL or SQL Server itself (assuming SQL Server).

If you are using .Net Framework application to call the stored procedure then take a look at SQLCommand.ExecuteNonQuery. This just executes stored procedure with no results returned. If problem is at SQL Server level then you are going to have to do something different (i.e. change the stored procedure).

0
ответ дан 7 November 2019 в 08:45
поделиться

когда-либо пробовали ВКЛЮЧИТЬ НЕТ СЧЕТА; как вариант?

-2
ответ дан 7 November 2019 в 08:45
поделиться