Sql server 从使用存储过程的函数内部调用存储过程
我有一个函数叫做 如果我试图调用另一个存储过程并使用其值,但不确定是否可以这样使用它,请指导我是否使用了错误的方法 我可以在存储过程中这样做,调用其他存储过程吗Sql server 从使用存储过程的函数内部调用存储过程,sql-server,tsql,Sql Server,Tsql,我有一个函数叫做 如果我试图调用另一个存储过程并使用其值,但不确定是否可以这样使用它,请指导我是否使用了错误的方法 我可以在存储过程中这样做,调用其他存储过程吗 DECLARE @b int EXEC dbo.info @id, @b OUTPUT; SET @Eemail = @b.emailaddress 对吗 更新1 出现错误: 必须声明标量变量@Eemail存储过程应返回包含电子邮件地址的表,如下所示: BEGIN select Id, EmailAddress, ..., fr
DECLARE @b int
EXEC dbo.info @id, @b OUTPUT;
SET @Eemail = @b.emailaddress
对吗
更新1
出现错误:
必须声明标量变量@Eemail存储过程应返回包含电子邮件地址的表,如下所示:
BEGIN
select Id, EmailAddress, ..., from myTable;
END
然后,您可以像这样使用它:
DECLARE @bTable table (Id int,Email varchar(max),...)
EXEC dbo.info @id, bTable OUTPUT;
SET @Eemail = select Email from @bTable
如果@bTable包含多行,则返回的错误子查询将超过1行。若要解决此问题,请在where子句中使用ID,如:where ID=@IDInteger.emailaddresses,您正在尝试查找。你需要像set@EmailID=@b那样做,假设EmailID是integeri类型,我只是尝试使用info存储值来设置存储过程中的值,而不是integer,在这里你将其视为integer,我将其用作声明,一个表?U可以。只要您从spit返回一个表,就会返回有关用户的信息
DECLARE @bTable table (Id int,Email varchar(max),...)
EXEC dbo.info @id, bTable OUTPUT;
SET @Eemail = select Email from @bTable