Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 从使用存储过程的函数内部调用存储过程_Sql Server_Tsql - Fatal编程技术网

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=@ID

Integer.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