Chcę wykonać procedurę przechowywaną w SQL Server i przypisać wyjście do zmiennej (zwraca pojedynczą wartość)?Jak zwrócić wynik procedury składowanej do zmiennej w serwerze sql
Odpowiedz
To zależy od charakteru informacji, które chcesz wrócić.
Jeśli jest to pojedyncza wartość całkowitą, można użyć instrukcji
create proc myproc
as
begin
return 1
end
go
declare @i int
exec @i = myproc
return
Jeśli masz non wartość całkowitą lub szereg wartości skalarnych, można użyć parametrów wyjściowych
create proc myproc
@a int output,
@b varchar(50) output
as
begin
select @a = 1, @b='hello'
end
go
declare @i int, @j varchar(50)
exec myproc @i output, @j output
Jeśli chcesz powrócić zestawu danych, można użyć insert exec
create proc myproc
as
begin
select name from sysobjects
end
go
declare @t table (name varchar(100))
insert @t (name)
exec myproc
Można nawet wrócić kursor ale to po prostu okropny, więc nie powinien dać przykład :)
Dla liczb całkowitych należy nadal używać parametrów wyjściowych. Zarezerwuj wartość zwrotu dla tego, co zostało zaprojektowane: status. Dobrzy programiści oddzielają pojęcia i piszą solidny kod. Co się dzieje, jeśli procedura składowana zwracająca liczbę całkowitą kończy się niepowodzeniem? –
Zauważyłem anomalię, że gdy zwrócę dziesiętny, jej miejsca po przecinku są zerowe, ale kiedy zmieniam je, aby wybrać, zwraca poprawnie miejsca dziesiętne. – Rama
@DRAM 'return' zwraca pojedynczą ** liczbę całkowitą ** wartość – podiluska
Możesz użyć instrukcji return
w procedurze przechowywanej, aby zwrócić kod statusu całkowitoliczbowego (i tylko typ całkowity). Zgodnie z konwencją do sukcesu odnosi się wartość zerową.
Jeśli nie zostanie ustawione jednoznacznie return
, procedura składowana zwraca zero.
CREATE PROCEDURE GetImmediateManager
@employeeID INT,
@managerID INT OUTPUT
AS
BEGIN
SELECT @managerID = ManagerID
FROM HumanResources.Employee
WHERE EmployeeID = @employeeID
if @@rowcount = 0 -- manager not found?
return 1;
END
I ty nazywasz to w ten sposób:
DECLARE @return_status int;
DECLARE @managerID int;
EXEC @return_status = GetImmediateManager 2, @managerID output;
if @return_status = 1
print N'Immediate manager not found!';
else
print N'ManagerID is ' + @managerID;
go
Należy używać wartości zwracanej przez zaledwie kodów stanu. Aby zwrócić dane, należy użyć parametrów wyjściowych.
Jeśli chcesz zwrócić zestaw danych, użyj parametru wyjściowego typu cursor
.
@downvoter, czy możesz wyjaśnić, co jest nie tak? –
użyć tego kodu, prawidłowo
CREATE PROCEDURE [dbo].[sp_delete_item]
@ItemId int = 0
@status bit OUT
AS
Begin
DECLARE @cnt int;
DECLARE @status int =0;
SET NOCOUNT OFF
SELECT @cnt =COUNT(Id) from ItemTransaction where ItemId = @ItemId
if(@cnt = 1)
Begin
return @status;
End
else
Begin
SET @status =1;
return @status;
End
END
Praca Execute SP
DECLARE @statuss bit;
EXECUTE [dbo].[sp_delete_item] 6, @statuss output;
PRINT @statuss;
- 1. Jak zwrócić tabelę z procedury składowanej?
- 2. Jak zwrócić tabelę tymczasową z procedury składowanej
- 3. Zapisz wynik procedury przechowywane w tabeli zmiennej
- 4. Przypisanie zwracanej wartości procedury składowanej do zmiennej VBA
- 5. Asynchronizacja procedury składowanej wywołanie w T-SQL
- 6. Jak zwrócić wartości z dynamicznej procedury składowanej SQL do Entity Framework?
- 7. Tworzenie procedury składowanej w ramach innej procedury składowanej w SQL Server 2008
- 8. Jak uzyskać wyniki bezpośredniego wywołania SQL do procedury składowanej?
- 9. Czy mogę domyślnie parametr procedury składowanej sql do wyrażenia dynamicznego?
- 10. serwer sql przechowywać wynik wyboru w zmiennej?
- 11. pobierz parametr z procedury składowanej?
- 12. Wyjście z procedury składowanej
- 13. "; 1" po wywołaniu procedury składowanej w MS SQL?
- 14. Wywoływanie procedury składowanej z parametrami
- 15. Wywołanie procedury składowanej za pomocą asp.net
- 16. Udzielenie uprawnienia wykonywania do procedury składowanej na SQL Azure
- 17. Powracanie wielu wartości z procedury składowanej
- 18. Wywoływanie procedury składowanej w codeigniter
- 19. Jak wyłączyć wyniki procedury przechowywanej z procedury składowanej?
- 20. wywoływanie procedury składowanej z solr
- 21. Jak zatrzymać wykonywanie procedury składowanej przy użyciu programu SQL Server?
- 22. Jak uruchomić zadanie SQL Server z procedury składowanej?
- 23. wywołanie procedury składowanej serwera SQL z parametrem w R
- 24. Jak użyć wartości z jednej procedury składowanej w innej?
- 25. Jak przypisać wstawioną wartość wyjściową do zmiennej w serwerze sql?
- 26. Podsumowanie listy obiektów z procedury składowanej
- 27. Wytworny wywołanie procedury przechowywane i mapa wynik do klasy
- 28. Powróć do wiadomości z procedury składowanej do aplikacji C#
- 29. Porównaj dwie wersje procedury składowanej
- 30. Filtrowanie zbioru wyników procedury składowanej
co robi twoja procedura przechowywana zwraca? Jedna wartość? Zestaw wyników? –