Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So geben Sie die Ausgabe einer gespeicherten Prozedur in eine Variable in SQL Server zurück

Das hängt von der Art der Informationen ab, die Sie zurückgeben möchten.

Wenn es sich um einen einzelnen ganzzahligen Wert handelt, können Sie den return verwenden Erklärung

 create proc myproc
 as 
 begin
     return 1
 end
 go
 declare @i int
 exec @i = myproc

Wenn Sie einen nicht ganzzahligen Wert oder eine Reihe von Skalarwerten haben, können Sie Ausgabeparameter verwenden

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

Wenn Sie einen Datensatz zurückgeben möchten, können Sie insert exec verwenden

create proc myproc
as 
begin
     select name from sysobjects
end
go

declare @t table (name varchar(100))
insert @t (name)
exec myproc

Sie können sogar einen Cursor zurückgeben, aber das ist einfach schrecklich, also werde ich kein Beispiel geben :)