Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да върнете изхода на съхранената процедура в променлива в sql сървър

Това зависи от естеството на информацията, която искате да върнете.

Ако е едно цяло число, можете да използвате return изявление

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

Ако имате стойност, която не е цяло число, или няколко скаларни стойности, можете да използвате изходни параметри

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

Ако искате да върнете набор от данни, можете да използвате insert exec

create proc myproc
as 
begin
     select name from sysobjects
end
go

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

Можете дори да върнете курсор, но това е просто ужасно, така че няма да давам пример :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свързване на приложения, работещи на Linux, към Amazon Relational Database Services (RDS) за SQL Server

  2. Поправки за проблем с възстановяването на онлайн индекса на SQL Server 2012 и 2014

  3. ИЗБЕРЕТЕ DISTINCT на една колона

  4. Функции за сигурност в SQL Server 2017

  5. Как да коригирате „Списъкът за избор за оператора INSERT съдържа по-малко елементи от списъка за вмъкване“