gpt4 book ai didi

sql-server-2008 - 创建存储过程以修改行(如果存在),如果不存在则将新行插入表中

转载 作者:行者123 更新时间:2023-12-02 19:47:07 24 4
gpt4 key购买 nike

enter image description here

如何创建一个存储过程来根据 Id 和 Name 参数更新 Std_Course 的列,或者如果 Id 和 Name 不存在则插入新行

最佳答案

尝试这样的事情:

CREATE PROCEDURE dbo.proc_InsertOrUpdate
@ID INT, @Name VARCHAR(50), @StdCourse INT
AS

IF EXISTS (SELECT * FROM dbo.YourTable WHERE ID = @ID AND Name = @Name)

UPDATE dbo.YourTable
SET Std_course = @StdCourse
WHERE ID = @ID AND Name = @Name

ELSE

INSERT INTO dbo.YourTable(ID, Name, Std_Course)
VALUES(@ID, @Name, @StdCourse

更新:由于您使用的是 SQL Server 2008,因此您还可以使用简单的 MERGE 语句 - 直接“内联”或在存储过程中。它看起来像这样:

CREATE PROCEDURE dbo.proc_InsertOrUpdate
@ID INT, @Name VARCHAR(50), @StdCourse INT
AS
MERGE dbo.YourTable AS t
USING (SELECT @ID, @Name, @StdCourse) AS Source(ID, NAME, Std_Course)
ON source.ID = t.ID AND source.Name = t.Name

WHEN MATCHED THEN
UPDATE SET Std_Course = @StdCourse

WHEN NOT MATCHED THEN
INSERT(ID, Name, Std_Course)
VALUES(source.ID, source.Name, source.Std_Course);

关于sql-server-2008 - 创建存储过程以修改行(如果存在),如果不存在则将新行插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11078431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com