重现两个以上值的存储过程 [英] stored procedure returing more than 2 values

查看:78
本文介绍了重现两个以上值的存储过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我有一个查询:

Hi All,

I have a query as :

select @name=name,@address=address from Attendance_Master where OffEmail=@Email and LoginTime between @fromdate and @todate


我想在存储过程中使用此查询.

在过程中,我想传递三个值
1)@Email
2)@fromdate
3)@todate
并想返回两个值
1)@name
2)@address

请让我知道该怎么做以及在执行存储过程期间如何存储返回值.

谢谢你
莫哈末Wasif


and I want to use this query in stored procedure.

In Procedure I want to pass three values
1) @Email
2) @fromdate
3) @todate
and want to return two values
1) @name
2) @address

Please let me know how to do it and also how to store returning values during execution of stored procedure.

thanking You
Mohd. Wasif

推荐答案

您可以使用OUTPUT创建一个proc
You can create a proc using OUTPUT
CREATE PROCEDURE myProc
@Email    VARCHAR(100),
@fromdate DATETIME,
@todate   DATETIME,
@name     VARCHAR(100) OUTPUT,
@address  VARCHAR(100) OUTPUT
AS
select  TOP 1
        @name    = name,
        @address = address
from    Attendance_Master
where   OffEmail=@Email
        and
        LoginTime between @fromdate and @todate


这是使用proc
的方法


This is how you can use the proc

DECLARE @name     VARCHAR(100)
DECLARE @address  VARCHAR(100)

EXEC myProc @Email='email@email.com',@fromdate='2011-01-01',@todate='2011-01-31', @name = @name OUTPUT, @address = @address OUTPUT

PRINT @name
PRINT @address


非常简单!

使用:
结束存储过程
Very simple!

End your stored procedure with :

SELECT @Name as name, @address as address


您可以使用输出变量

You could use output variables

CREATE PROCEDURE  GetDetails

	(
		@Input1			SMALLINT,
		@Input2			SMALLINT,
		@Output1		INT OUTPUT
		@Output2		VARCHAR(50) OUTPUT
	)

AS

SET NOCOUNT ON

SELECT
	@Output1 = Field1, 
	@Output2 = Field2
FROM
	MyTable
WHERE
	SomeField = @Input1
AND
	SomeOtherField = @Input2 



然后只要从使用该过程的任何代码中获取值即可

http://dotnetgems.blogspot.com/2007/10/using-output- parameters-in-stored.html [ ^ ]

或者,您可以只返回一个ResultSet并读取值,这两个值都是有效的.



Then just grab the values from whatever code is consuming the procedure

http://dotnetgems.blogspot.com/2007/10/using-output-parameters-in-stored.html[^]

Or you could just return a ResultSet and read the values, both are valid.


这篇关于重现两个以上值的存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆