Stored procedures 从sqlserver中的另一个过程调用过程

Stored procedures 从sqlserver中的另一个过程调用过程,stored-procedures,Stored Procedures,我有两个过程procgetid,insertmarks.procgetid返回一个int值,该值将在insertmarks过程中使用 procgetid过程中的代码: ALTER procedure [dbo].[procgetid](@sid int output) as begin select @sid=(select isnull(max(id),0)+100 from test2); return @sid end ALTER procedure [dbo].[insertmar

我有两个过程procgetid,insertmarks.procgetid返回一个int值,该值将在insertmarks过程中使用

procgetid过程中的代码:

ALTER procedure [dbo].[procgetid](@sid int output)
as  
begin
select @sid=(select isnull(max(id),0)+100 from test2);
return @sid
end
ALTER procedure [dbo].[insertmarks](@sub1 int,@sub2 int,@sub3 int)
as 
declare @student_id int
begin
exec @student_id = procgetid
insert into marks values(@sub1,@sub2,@sub3,@student_id)
end 
插入标记过程中的代码:

ALTER procedure [dbo].[procgetid](@sid int output)
as  
begin
select @sid=(select isnull(max(id),0)+100 from test2);
return @sid
end
ALTER procedure [dbo].[insertmarks](@sub1 int,@sub2 int,@sub3 int)
as 
declare @student_id int
begin
exec @student_id = procgetid
insert into marks values(@sub1,@sub2,@sub3,@student_id)
end 
在执行insertmarks过程时,我遇到了一个错误 无法将值NULL插入列“student_id”,列不允许为NULL。插入失败

开始 set@student\u id=exec[schemaname]。procgetid
插入标记值(@sub1、@sub2、@sub3、@student_id) 结束

开始 set@student\u id=exec[schemaname]。procgetid
插入标记值(@sub1、@sub2、@sub3、@student_id) 结束