使用UPDATE存储过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用UPDATE存储过程相关的知识,希望对你有一定的参考价值。

我目前正在尝试创建一个用于更新表的存储过程。我遇到了代码说它执行的问题,影响每一行但没有更新。我希望能够一次更新一行中的信息并让行实际更新。

代码如下:

CREATE PROCEDURE UpdateTrail  
    (@Open char(3),
     @AmountReal int,
     @AmountFake int) 
AS 
BEGIN 
    UPDATE TRAIL
    SET @Open = TOpen, 
        @AmountReal = AmountRealSnow, 
        @AmountFake = AmountFakeSnow

    RETURN @@Identity 
 END

我的列在trail表中如下:

TrailID int identity primary key,
TrailName varchar(255) Unique, 
Topen char(3),
AmountReal int,
Amountfake int

请问有什么建议吗?

答案

通常是更新语句s / b的结构

UPDATE myTable
   SET myColumn = @variable
     , myCol2   = @var2
 WHERE myTable.filtercolumn = @variable

正如Sami的评论中所建议的那样,您还需要将记录密钥传递给存储过程以便更新记录。

这样的事情:

CREATE PROCEDURE UpdateTrail (@Key int, 
@Open              char(3),
@AmountReal        int,
@AmountFake        int
) 
AS 
BEGIN 
    Update TRAIL
    set TOpen = @Open
      , AmountRealSnow = @AmountReal
      , AmountFakeSnow = @AmountFake 
    Where TRAIL.TrailID = @Key
    Return @@Identity 
 END

以上是关于使用UPDATE存储过程的主要内容,如果未能解决你的问题,请参考以下文章

oracle中的存储过程有啥作用,该怎么理解?(数据更新的话用update语句不就完了吗)

MySQL触发器

如何使用 SQLPlus 查看 Oracle 存储过程?

Oracle 整表导出为update语句(存储过程实现)

C# 解析 SQL 语句以查找存储过程中使用的所有 INSERT/UPDATE/DELETE 表

MySQL中存储过程的UPDATE,REPEAT和LIMIT使用不正确