代码之家  ›  专栏  ›  技术社区  ›  Ryan Gadsdon

了解存储过程SQL Server

  •  1
  • Ryan Gadsdon  · 技术社区  · 7 年前

    我试图理解存储过程在做什么,但我正在努力。

    这是代码

    DECLARE
    @person int,
    @year int,
    @default float = 0
    
    IF EXISTS (SELECT 1 FROM Table1 WHERE PERSONID = @person AND YEAR1 = @year 
    AND TYPE1 = 'A')
    BEGIN
    UPDATE Table1 SET DAY1 = @default
    WHERE PERSONID = @person AND YEAR1 = @year AND TYPE1 = 'A'
    END
    ELSE
    BEGIN
    INSERT INTO Table1 (PERSONID, YEAR1, DAY1, TYPE1)
    VALUES (@person, @year, @default, 'A')
    

    据我所知,此过程从网站获取数据并将其插入到数据库的表中。但我看不出它是从哪里来的。它只是更新或插入现有表。有人能就这可能发生的情况给出一些建议吗?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jamiec    7 年前

    假设 @person , @year @default 是存储过程的输入,它正在检查 Table1 具有指定 @人员 @年份 以及 Type1 字段等于值 A

    如果记录存在,它将更新该表的 Day 具有指定 @默认值 价值

    如果记录不存在,它将插入具有指定 @人员 , @年份 @默认值 以及 类型1 的值 A. .