sql - 如何将存储过程的输出返回到sql server中的变量中

标签 sql sql-server variables stored-procedures

我想在 SQL Server 中执行存储过程并将输出分配给变量(它返回单个值)?

最佳答案

这取决于您想要返回的信息的性质。

如果是单个整数值,可以使用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

你甚至可以返回一个光标,但这太可怕了,所以我不会给出一个例子:)

关于sql - 如何将存储过程的输出返回到sql server中的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11965269/

相关文章:

javascript - jQuery 收集了 2 个数据点,即使只分配了一个

MySQL:不同的评估命令行和 mysql 控制台

SQL UNION - 隐式匹配条件是什么?

SQL SELECT 整行,一列中有重复数据

mysql - Group By 在同一字段上有多个 Having

sql-server - 微软 azure : Could not submit the request to create database 'Name'

javascript - 在弹出窗口中显示信息

sql - 从一张表中获取记录并与同一张表进行区分会产生不规则的输出

c++ - 循环中 undefined variable ?

python - 如何修复错误:invalid literal for int() with base 10: 'Luck' ?