Sql server 如何将存储过程返回值存储在表或变量中
我有一个存储过程,我想在其中存储由另一个存储过程返回的值,我将如何做。我试着用谷歌搜索,但没有成功。我的代码是:Sql server 如何将存储过程返回值存储在表或变量中,sql-server,tsql,stored-procedures,sql-insert,Sql Server,Tsql,Stored Procedures,Sql Insert,我有一个存储过程,我想在其中存储由另一个存储过程返回的值,我将如何做。我试着用谷歌搜索,但没有成功。我的代码是: declare @t table (name varchar(100)) declare @MprNum varchar(20) insert @t exec usp_GetNextInvoice 'MPRId','MPRNo','MPRMain' select @MprNum=name from @t 我也试过: create table
declare @t table (name varchar(100))
declare @MprNum varchar(20)
insert @t exec usp_GetNextInvoice 'MPRId','MPRNo','MPRMain'
select @MprNum=name from @t
我也试过:
create table #t(name varchar(100))
declare @MprNum varchar(20)
insert #t exec usp_GetNextInvoice 'MPRId','MPRNo','MPRMain'
select @MprNum=name from #t
但是没有成功。试试这个
INSERT INTO #t
EXEC usp_GetNextInvoice 'MPRId','MPRNo','MPRMain'
试试这个
INSERT INTO #t
EXEC usp_GetNextInvoice 'MPRId','MPRNo','MPRMain'
如果您想将结果输出到变量,请使用如下脚本
--Procedure :
CREATE PROCEDURE usp_GetNextInvoice
@MPRId int,
@MprNum int OUTPUT
AS
SET NOCOUNT ON;
SELECT @MprNum = MprNum
FROM YourTable T
WHERE T.MPRId = @MPRId
RETURN
GO
-- Execution step
DECLARE @Result int;
EXECUTE usp_GetNextInvoice 10, @MprNum = @Result OUTPUT;
SELECT @Result
如果要将结果集输出到表中,请尝试使用以下脚本
--Procedure
CREATE PROCEDURE usp_GetNextInvoice
@MPRId int
AS
SET NOCOUNT ON;
SELECT *
FROM YourTable T
WHERE T.MPRId = @MPRId
RETURN
GO
--execution step
CREATE TABLE #T
(Col1 ... -- column count should match with the output of the procedure
....)
GO
INSERT INTO #T
EXEC usp_GetNextInvoice 10
如果您想将结果输出到变量,请使用如下脚本
--Procedure :
CREATE PROCEDURE usp_GetNextInvoice
@MPRId int,
@MprNum int OUTPUT
AS
SET NOCOUNT ON;
SELECT @MprNum = MprNum
FROM YourTable T
WHERE T.MPRId = @MPRId
RETURN
GO
-- Execution step
DECLARE @Result int;
EXECUTE usp_GetNextInvoice 10, @MprNum = @Result OUTPUT;
SELECT @Result
如果要将结果集输出到表中,请尝试使用以下脚本
--Procedure
CREATE PROCEDURE usp_GetNextInvoice
@MPRId int
AS
SET NOCOUNT ON;
SELECT *
FROM YourTable T
WHERE T.MPRId = @MPRId
RETURN
GO
--execution step
CREATE TABLE #T
(Col1 ... -- column count should match with the output of the procedure
....)
GO
INSERT INTO #T
EXEC usp_GetNextInvoice 10
此语句是否返回任何行
exec usp_GetNextInvoice 'MPRId','MPRNo','MPRMain'
因为您尝试的代码是完美的….此语句是否返回任何行
exec usp_GetNextInvoice 'MPRId','MPRNo','MPRMain'
因为您尝试的代码是完美的……失败是什么意思
usp_GetNextInvoice
如何返回该值,返回或选择?请显示该存储过程的相关详细信息。该值由select语句返回。usp\u GetNextInvoice
如何返回该值,return
或select
?请显示该存储过程的相关详细信息。该值由select语句返回。我尝试了表插入,但未插入数据。未给出任何错误。但数据也不会插入表中。给出消息“0行生效”如果您在不使用INSERT命令的情况下执行过程,是否正在获取结果集??您还可以提供您的存储过程脚本吗?是的,当我执行过程时,它给了我这个值“STI-00001”。我尝试了表插入,但数据没有插入。没有给出错误。但数据也不会插入表中。给出消息“0行生效”如果您在不使用INSERT命令的情况下执行过程,是否正在获取结果集??您能提供您的存储过程脚本吗?是的,当我执行过程时,它会给我这个值“STI-00001”,请看我已经尝试过的问题。它不起作用。当你说“它不起作用”时,你的意思是1)你收到了一条错误消息,还是2)它成功执行,但你没有得到任何数据?程序给了我这个“STI-00001”,但它没有插入表中#t看看我已经尝试过的问题。它不工作。当你说“它不工作”时,你的意思是1)你收到一条错误消息,还是2)它成功执行但你没有得到任何数据?程序给我这个“STI-00001”,但它没有插入表中#tYes它返回这个值“STI-00001”是它返回这个值“STI-00001”