Desidero eseguire una stored procedure in SQL Server e assegnare l'output a una variabile (restituisce un singolo valore)?Come restituire l'output della stored procedure in una variabile nel server sql
risposta
Questo dipende dalla natura delle informazioni che si desidera tornare.
Se si tratta di un singolo valore integer, è possibile utilizzare il return
dichiarazione
create proc myproc
as
begin
return 1
end
go
declare @i int
exec @i = myproc
Se si dispone di un valore intero non, o di un certo numero di valori scalari, è possibile utilizzare i parametri di output
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
Se si desidera restituire un set di dati, è possibile utilizzare insert exec
create proc myproc
as
begin
select name from sysobjects
end
go
declare @t table (name varchar(100))
insert @t (name)
exec myproc
Si può anche restituire un cursore, ma questo è solo orribile, quindi non darò un esempio :)
Per i numeri interi, dovresti comunque utilizzare i parametri di output. Riserva il valore di ritorno per quello che sono stati progettati: stato. I bravi programmatori separano concetti e scrivono codice solido. Cosa succede se la stored procedure che restituisce un intero ha esito negativo? –
ho osservato un'anomalia che quando restituisco un decimale le sue cifre decimali sono zero, ma quando lo cambio per selezionarlo restituisce correttamente le posizioni decimali. – Rama
@DRAM 'return' restituisce un singolo ** intero ** valore – podiluska
È possibile utilizzare l'istruzione return
all'interno di una stored procedure per restituire un codice di stato intero (e solo di tipo integer). Per convenzione, un valore di ritorno pari a zero viene utilizzato per il successo.
Se non return
è impostato in modo esplicito, allora la stored procedure restituisce 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
E si chiama in questo modo:
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
si dovrebbe usare il valore di ritorno solo per codici di stato. Per restituire i dati, è necessario utilizzare i parametri di output.
Se si desidera restituire un set di dati, quindi utilizzare un parametro di output di tipo cursor
.
@downvoter, ti dispiace spiegare cosa c'è che non va? –
utilizzare questo codice, funziona correttamente
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
Esegui SP
DECLARE @statuss bit;
EXECUTE [dbo].[sp_delete_item] 6, @statuss output;
PRINT @statuss;
- 1. SQL Server: variabile facoltativa in una stored procedure
- 2. Se resto in SQL Server stored procedure
- 3. Eseguire una stored procedure in un'altra stored procedure nel server SQL
- 4. Rinominare una stored procedure in SQL Server
- 5. SQL Server - selezionare stored procedure
- 6. Come restituire i valori da una stored procedure di SQL Server e utilizzarli in Access VBA
- 7. SQL Server Stored Procedure Cartelle/Raggruppamento
- 8. La stored procedure del server SQL restituisce una tabella
- 9. l'esecuzione di una stored procedure Oracle da SQL Server 2008
- 10. Valore restituito nella stored procedure SQL Server
- 11. SQL Stored Procedure LIKE
- 12. Passaggio di matrice a una stored procedure di SQL Server
- 13. SQL Server view Stored Procedure relazioni complete
- 14. SELECT rispetto a stored procedure SQL Server
- 15. chiama una stored procedure SQL Server con parametro in R
- 16. Data ultima esecuzione su una stored procedure in SQL Server
- 17. SQL Server stored procedure return code oddity
- 18. Microsoft SQL Server: chi ha creato una stored procedure?
- 19. SQL Server Compact Edition supporta stored procedure?
- 20. Timeout quando chiamo una stored procedure di SQL Server 2008
- 21. Come pianificare una stored procedure?
- 22. Come restituire una tabella da una stored procedure?
- 23. SQL Server Stored procedure acquisizione valore restituito in T-SQL
- 24. Ricerca testo in stored procedure in SQL Server 2005
- 25. sql server stored procedure usa varchar max come parametro
- 26. Numero variabile di argomenti in stored procedure PL/SQL
- 27. Come passare un numero variabile di parametri a una stored procedure di SQL Server?
- 28. Come ottenere l'errore sql nella stored procedure
- 29. Definizione di stored procedure estesa in MS SQL Server
- 30. Impostazione del timeout della query su una stored procedure in SQL Server 2005
Cosa fa la procedura memorizzata restituisce? Un singolo valore? Un set di risultati? –