如何处理存储过程?

Cri*_*and 1 sql sql-server stored-procedures

您好我是创建存储过程的新手,您可以帮我解决这个问题.错误:关键字"AS"附近的语法不正确.必须声明标量变量@Serial.

CREATE PROCEDURE sp_SIU
    -- Add the parameters for the stored procedure here
    @Serial varchar(50),
    @Part varchar(50),
    @Status varchar(50),
AS
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    /*SET NOCOUNT ON;*/

    -- Insert statements for procedure here
    --where in my form if i enter serial number it will show select values  
    Select SerialNumber,PartNumber,Status from Table1 where SerialNUmber = @Serial

    --Then if is correct it will Update Status on combobox

       Update Table1 SET
               Status=@Status
                 where SerialNumber=@SerialNumber

    --then Insert Serial Number,Parnumber to Table 2

        DECLARE @Count int
    select @Count = Count(SerialNumber) from Table1 WHERE SerialNumber = @Serial

    IF @Count = 0 
        BEGIN
                INSERT INTO Table2 (SerialNumber,PArtNumber) 
                VALUES 
                (@Serial, @Part)
        END 
        RETURN @Count

    RETURN
Run Code Online (Sandbox Code Playgroud)

编辑:移动已更新的信息作为问题的答案发布

哎呀我的帖子不是那么想念.可以在一个存储过程中连接这个3 sql字符串吗?

场景:{我已经在我的形式做的是,我将输入序列号,以txtserial.text通过选择SQL它会显示serialnumber,partnumberstatuslblserial.text,lblpartnumber.textlblstatus.text.我会比较:

txtserial.text == lblserial.text
txtpartnumber.text == lblpartnumber.text
Run Code Online (Sandbox Code Playgroud)

为我的错误处理程序.

{
Select SerialNumber,PartNumber,Status from Table1 where SerialNUmber = @Serial
}
Run Code Online (Sandbox Code Playgroud)

然后,如果它们相等,那么:如果序列和部分正确,我将从cbostatus.text更新我的状态,然后使用sql upate.

{
Update Table1 SET
               Status=@Status,
               Modifiedby=@username,
               DateModified=@Date

                 where SerialNumber=@Serial
}


Then insert serialnumber, using sql insert to another table.
{
 INSERT INTO Table2 (SerialNumber,DateCreated,Createdby) 
                VALUES 
                (@Serial,@date,@username)
}
Run Code Online (Sandbox Code Playgroud)

什么东西likethis.")

Mar*_*ith 7

你这里有一个流氓逗号

    @Status varchar(50),
AS
Run Code Online (Sandbox Code Playgroud)

与名称之间蹒跚@Serial@SerialNumber被这些旨在是2个不同的参数?

这条线的目的是什么?

  Select SerialNumber,PartNumber,Status from Table1 where SerialNUmber = @Serial
Run Code Online (Sandbox Code Playgroud)

目前,它只会将3列结果集发送回调用应用程序.这是它打算做什么(它似乎不符合以下评论似乎意味着它是某种检查)?