加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2005 – 如何在SQL Server 2005中提升(更新和插入)

发布时间:2020-12-12 16:09:31 所属栏目:MsSql教程 来源:网络整理
导读:我有一个表,我在其中插入行为员工,但下一次当我想插入行我不想再次插入该员工的数据只是想要更新与必需的列,如果它退出那里,如果没有,然后创建新行 我们如何在SQL Server 2005中执行此操作? 我正在使用jsp 我的查询是 String sql="insert into table1(id,nam
我有一个表,我在其中插入行为员工,但下一次当我想插入行我不想再次插入该员工的数据只是想要更新与必需的列,如果它退出那里,如果没有,然后创建新行

我们如何在SQL Server 2005中执行此操作?

我正在使用jsp

我的查询是

String sql="insert into table1(id,name,itemname,itemcatName,itemQty)values('val1','val2','val3','val4','val5')";

如果它是第一次,然后将其插入到数据库else如果存在更新它

怎么做?

解决方法

尝试检查存在:
IF NOT EXISTS (SELECT * FROM dbo.Employee WHERE ID = @SomeID)

    INSERT INTO dbo.Employee(Col1,...,ColN)
    VALUES(Val1,..,ValN)

ELSE

    UPDATE dbo.Employee
    SET Col1 = Val1,Col2 = Val2,....,ColN = ValN
    WHERE ID = @SomeID

您可以轻松地将其包装到存储过程中,并从外部调用该存储过程(例如,从C#编程语言或任何您正在使用的程序语言).

更新:您可以将这个整个语句写入一个长的字符串(可执行 – 但不是非常有用) – 或者可以将其包装到存储过程中:

CREATE PROCEDURE dbo.InsertOrUdpateEmployee
       @ID INT,@Name VARCHAR(50),@ItemName VARCHAR(50),@ItemCatName VARCHAR(50),@ItemQty DECIMAL(15,2)
AS BEGIN
    IF NOT EXISTS (SELECT * FROM dbo.Table1 WHERE ID = @ID)
       INSERT INTO dbo.Table1(ID,Name,ItemName,ItemCatName,ItemQty)
       VALUES(@ID,@Name,@ItemName,@ItemCatName,@ItemQty)
    ELSE
       UPDATE dbo.Table1
       SET Name = @Name,ItemName = @ItemName,ItemCatName = @ItemCatName,ItemQty = @ItemQty
       WHERE ID = @ID
END

然后从ADO.NET代码中调用该存储过程

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读