0

基本上当我注册时(注册详细信息进入登录表),然后这些数据进入 2 个表:

  1. 登录表
  2. 登记表(具体)

使用@Attrib我检查哪些数据需要转到哪个表。但是在这里我在第一else部分附近遇到了一个错误。

错误是:

'@Attrib' 附近的语法不正确,需要 SELECT 或 ,'('

这是代码:

ALTER procedure [dbo].[Registration_SP]
(
    @Email varchar(50),
    @Password varchar(50),
    @Repassword varchar(50),
    @Attrib varchar(50) 
)
AS

BEGIN

    Insert into Login (Email,Password,Repassword,Attrib)
    values(@Email,@Password,@Repassword,@Attrib)

    IF (@Attrib = 'Student')
    BEGIN
        Insert into StudentReg
            (StudentId,FirstName,LastName,Gender,Address1,Address2,Address3,
             LandPhone,MobilePhone,Budget,IsFinancialSupport,CourseName,
             IsJobSeeker,Country,Region,IsSupportActive,RegDate,ImagePath,
             ShortCode)
        Values(@Email,'','','','','','','','','','','','','','','','','','')
    END
    ELSE (@Attrib = 'Financial Supporter')
    BEGIN
        Insert into SupporterReg   
        (SupporterId,SupporterName,University,ContactNo,StudentLocation,RegDate,
         ImagePath,ShortCode)
        Values(@Email,'','','','','','','')
    END

进一步澄清,我附上了下面的图片:

在此处输入图像描述

4

2 回答 2

7

你后来ELSE失踪了:IF

IE

ELSE (@Attrib = 'Financial Supporter') 

应该

ELSE IF (@Attrib = 'Financial Supporter') 
于 2012-10-12T18:24:38.913 回答
6

ELSEcase没有条件,所以报语法错误。

-- Should be no condition here, syntax error.
ELSE (@Attrib = 'Financial Supporter')

我假设你打算这样做ELSE IF

ELSE
 IF (@Attrib = 'Financial Supporter')
于 2012-10-12T18:24:08.873 回答