Załóżmy mam pewne procedury przechowywanej (i nie można go zmienić), która zwraca zestaw wyników:Unikać powrocie zestaw wyników z procedury przechowywanej
create procedure test_procedure
as
begin
select 1
end
wiem, że mogę wstawić wynik ustawiony na stole, więc byłoby to ukryte dla kodu wywołującego:
declare @t table(i int)
insert into @t
exec test_procedure
Czy są jakieś inne sposoby na ukrycie powracającego zestawu wyników z kodu wywołującego?
Updated
Wygląda Byłem nieco mylące. Szukam tylko odpowiedzi T-SQL (nie te .NET).
Jaki jest dokładnie problem z zwrócenie tego zestawu wyników? Zawsze możesz zignorować zestaw wyników i pozwolić, by garbage collector zajął się nim. –
@Cylon Cat RE "pozwól, aby garbage collector to zrobił", tak nie jest. TDS jest protokołem przesyłania strumieniowego ... jeśli nie zostanie _read_ wynikiem, nie zostanie on koniecznie zwrócony klientowi. Nawet jeśli jego części są zwracane do klienta, prawdopodobnie będą obsługiwane w natywnym kodzie, chyba że odczytane z DataReader et al. –
Cylon Cat: Co zrobić, jeśli nie mogę zignorować zestawu wyników? na przykład kod, który wywołuje moją procedurę, zakłada, że nie zwraca się żadnego zestawu wyników. –