一些存储过程会做一些检查,当检查失败时,返回一个特定的值。如果没有失败,一些返回 SELECT 语句,一些返回 NOTHING(如下面的示例)。
注意:此时不能更改存储过程,下面的示例只是显示 RETURN 和 SELECT 差异的示例。
/* THIS IS A SAMPLE PROC */
CREATE PROCEDURE [dbo].[Register]
(
@Email varchar(200)
)
AS
BEGIN
SET NOCOUNT ON ;
-- Check if user table has an Active record with this email
IF EXISTS(SELECT * FROM Users WHERE Email = @Email AND Activated = 0)
RETURN(1)
-- Check if user table has an Active record with this email
IF EXISTS(SELECT * FROM Users WHERE Email = @Email AND Activated = 1)
RETURN(2)
-- Create New User record
INSERT INTO Users (Email, xxx)
VALUES (@Email, xxxx)
END
使用 EF5 并将存储过程导入 EDMX,如果出现问题,我如何获得值 1 或 2,或者如果存储过程成功通过,我如何获得值 1 或 2?