3

ここに画像の説明を入力

Id と Name パラメーターに基づいて Std_Course の列を更新するストアド プロシージャを作成する方法、または Id と Name が存在しない場合は新しい行を挿入する方法

4

1 に答える 1

2

次のようなことを試してください:

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);
于 2012-06-18T07:24:30.057 に答える